OSDN Git Service

mrcImageOpticalFlow & mrcImageLucasKanade & mrcImageHornSchunckの変更
[eos/base.git] / src / Objects / DataExpress / eosRuby / src / Swig / molvieRuby_wrap.c
index e5b9cf0..1788857 100644 (file)
@@ -1830,33 +1830,35 @@ int SWIG_Ruby_arity( VALUE proc, int minimal )
 #define SWIGTYPE_p_mrcImageInformationMode swig_types[49]
 #define SWIGTYPE_p_mrcImageParaTypeIntegerCoord swig_types[50]
 #define SWIGTYPE_p_mrcImageParaTypeRealCoord swig_types[51]
-#define SWIGTYPE_p_mrcImageTailer swig_types[52]
-#define SWIGTYPE_p_mrcPixelDataHowToGet swig_types[53]
-#define SWIGTYPE_p_mrcPixelDataType swig_types[54]
-#define SWIGTYPE_p_operationMode swig_types[55]
-#define SWIGTYPE_p_p_char swig_types[56]
-#define SWIGTYPE_p_p_double swig_types[57]
-#define SWIGTYPE_p_p_floatVector swig_types[58]
-#define SWIGTYPE_p_pdbCenter swig_types[59]
-#define SWIGTYPE_p_pdbCoord swig_types[60]
-#define SWIGTYPE_p_pdbFile swig_types[61]
-#define SWIGTYPE_p_pdbFileSecondaryStructure swig_types[62]
-#define SWIGTYPE_p_pdbFileSecondaryStructureMode swig_types[63]
-#define SWIGTYPE_p_pdbFileSecondaryStructureRecord swig_types[64]
-#define SWIGTYPE_p_pdbRecord swig_types[65]
-#define SWIGTYPE_p_pdbSecondaryStructureHelix swig_types[66]
-#define SWIGTYPE_p_pdbSecondaryStructureHelixClass swig_types[67]
-#define SWIGTYPE_p_pdbSecondaryStructureNo swig_types[68]
-#define SWIGTYPE_p_pdbSecondaryStructureSheet swig_types[69]
-#define SWIGTYPE_p_pdbSecondaryStructureTurn swig_types[70]
-#define SWIGTYPE_p_residueName swig_types[71]
-#define SWIGTYPE_p_short swig_types[72]
-#define SWIGTYPE_p_unsigned_char swig_types[73]
-#define SWIGTYPE_p_unsigned_int swig_types[74]
-#define SWIGTYPE_p_unsigned_long swig_types[75]
-#define SWIGTYPE_p_unsigned_short swig_types[76]
-static swig_type_info *swig_types[78];
-static swig_module_info swig_module = {swig_types, 77, 0, 0, 0, 0};
+#define SWIGTYPE_p_mrcImagePyramid swig_types[52]
+#define SWIGTYPE_p_mrcImagePyramidList swig_types[53]
+#define SWIGTYPE_p_mrcImageTailer swig_types[54]
+#define SWIGTYPE_p_mrcPixelDataHowToGet swig_types[55]
+#define SWIGTYPE_p_mrcPixelDataType swig_types[56]
+#define SWIGTYPE_p_operationMode swig_types[57]
+#define SWIGTYPE_p_p_char swig_types[58]
+#define SWIGTYPE_p_p_double swig_types[59]
+#define SWIGTYPE_p_p_floatVector swig_types[60]
+#define SWIGTYPE_p_pdbCenter swig_types[61]
+#define SWIGTYPE_p_pdbCoord swig_types[62]
+#define SWIGTYPE_p_pdbFile swig_types[63]
+#define SWIGTYPE_p_pdbFileSecondaryStructure swig_types[64]
+#define SWIGTYPE_p_pdbFileSecondaryStructureMode swig_types[65]
+#define SWIGTYPE_p_pdbFileSecondaryStructureRecord swig_types[66]
+#define SWIGTYPE_p_pdbRecord swig_types[67]
+#define SWIGTYPE_p_pdbSecondaryStructureHelix swig_types[68]
+#define SWIGTYPE_p_pdbSecondaryStructureHelixClass swig_types[69]
+#define SWIGTYPE_p_pdbSecondaryStructureNo swig_types[70]
+#define SWIGTYPE_p_pdbSecondaryStructureSheet swig_types[71]
+#define SWIGTYPE_p_pdbSecondaryStructureTurn swig_types[72]
+#define SWIGTYPE_p_residueName swig_types[73]
+#define SWIGTYPE_p_short swig_types[74]
+#define SWIGTYPE_p_unsigned_char swig_types[75]
+#define SWIGTYPE_p_unsigned_int swig_types[76]
+#define SWIGTYPE_p_unsigned_long swig_types[77]
+#define SWIGTYPE_p_unsigned_short swig_types[78]
+static swig_type_info *swig_types[80];
+static swig_module_info swig_module = {swig_types, 79, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -2563,6 +2565,35 @@ fail:
 
 
 SWIGINTERN VALUE
+_wrap_matrix3DCopy(int argc, VALUE *argv, VALUE self) {
+  matrix3DParaTypeReal (*arg1)[4] ;
+  matrix3DParaTypeReal (*arg2)[4] ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_a_4__float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "float [4][4]","matrix3DCopy", 1, argv[0] )); 
+  } 
+  arg1 = (float (*)[4])(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_a_4__float, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "float [4][4]","matrix3DCopy", 2, argv[1] )); 
+  } 
+  arg2 = (float (*)[4])(argp2);
+  matrix3DCopy((float (*)[4])arg1,(float (*)[4])arg2);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
 _wrap_matrix3DFromRotationMatrix(int argc, VALUE *argv, VALUE self) {
   matrix3DParaTypeReal (*arg1)[4] ;
   Array arg2 ;
@@ -11814,7 +11845,7 @@ fail:
 SWIGINTERN VALUE
 _wrap_mrcImage_ImageLongImage_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImage *arg1 = (struct mrcImage *) 0 ;
-  unsigned long *arg2 = (unsigned long *) 0 ;
+  long *arg2 = (long *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -11828,11 +11859,11 @@ _wrap_mrcImage_ImageLongImage_set(int argc, VALUE *argv, VALUE self) {
     SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImage *","ImageLongImage", 1, self )); 
   }
   arg1 = (struct mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_unsigned_long, SWIG_POINTER_DISOWN |  0 );
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_long, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "unsigned long *","ImageLongImage", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "long *","ImageLongImage", 2, argv[0] )); 
   }
-  arg2 = (unsigned long *)(argp2);
+  arg2 = (long *)(argp2);
   if (arg1) (arg1)->ImageLongImage = arg2;
   return Qnil;
 fail:
@@ -11845,7 +11876,7 @@ _wrap_mrcImage_ImageLongImage_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImage *arg1 = (struct mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  unsigned long *result = 0 ;
+  long *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -11856,7 +11887,60 @@ _wrap_mrcImage_ImageLongImage_get(int argc, VALUE *argv, VALUE self) {
     SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImage *","ImageLongImage", 1, self )); 
   }
   arg1 = (struct mrcImage *)(argp1);
-  result = (unsigned long *) ((arg1)->ImageLongImage);
+  result = (long *) ((arg1)->ImageLongImage);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_long, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImage_ImageULongImage_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImage *arg1 = (struct mrcImage *) 0 ;
+  unsigned long *arg2 = (unsigned long *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImage *","ImageULongImage", 1, self )); 
+  }
+  arg1 = (struct mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_unsigned_long, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "unsigned long *","ImageULongImage", 2, argv[0] )); 
+  }
+  arg2 = (unsigned long *)(argp2);
+  if (arg1) (arg1)->ImageULongImage = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImage_ImageULongImage_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImage *arg1 = (struct mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  unsigned long *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImage *","ImageULongImage", 1, self )); 
+  }
+  arg1 = (struct mrcImage *)(argp1);
+  result = (unsigned long *) ((arg1)->ImageULongImage);
   vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_unsigned_long, 0 |  0 );
   return vresult;
 fail:
@@ -12608,6 +12692,349 @@ free_mrcImage(struct mrcImage *arg1) {
     free((char *) arg1);
 }
 
+static swig_class SwigClassMrcImagePyramidList;
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_mrc_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","mrc", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrc", 2, argv[0] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  if (arg1) (arg1)->mrc = *arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_mrc_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcImage *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","mrc", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  result = (mrcImage *)& ((arg1)->mrc);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mrcImage, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_up_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","up", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_mrcImage, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","up", 2, argv[0] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  if (arg1) (arg1)->up = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_up_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcImage *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","up", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  result = (mrcImage *) ((arg1)->up);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mrcImage, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_down_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","down", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_mrcImage, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","down", 2, argv[0] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  if (arg1) (arg1)->down = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_down_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *arg1 = (struct mrcImagePyramidList *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcImage *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramidList *","down", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramidList *)(argp1);
+  result = (mrcImage *) ((arg1)->down);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mrcImage, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_mrcImagePyramidList_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_mrcImagePyramidList_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImagePyramidList);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_mrcImagePyramidList(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramidList *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct mrcImagePyramidList *)calloc(1, sizeof(struct mrcImagePyramidList));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_mrcImagePyramidList(struct mrcImagePyramidList *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassMrcImagePyramid;
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramid_top_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramid *arg1 = (struct mrcImagePyramid *) 0 ;
+  mrcImagePyramidList *arg2 = (mrcImagePyramidList *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramid, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramid *","top", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramid *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_mrcImagePyramidList, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImagePyramidList *","top", 2, argv[0] )); 
+  }
+  arg2 = (mrcImagePyramidList *)(argp2);
+  if (arg1) (arg1)->top = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramid_top_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramid *arg1 = (struct mrcImagePyramid *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcImagePyramidList *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramid, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramid *","top", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramid *)(argp1);
+  result = (mrcImagePyramidList *) ((arg1)->top);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramid_current_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramid *arg1 = (struct mrcImagePyramid *) 0 ;
+  mrcImagePyramidList *arg2 = (mrcImagePyramidList *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramid, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramid *","current", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramid *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_mrcImagePyramidList, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImagePyramidList *","current", 2, argv[0] )); 
+  }
+  arg2 = (mrcImagePyramidList *)(argp2);
+  if (arg1) (arg1)->current = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImagePyramid_current_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramid *arg1 = (struct mrcImagePyramid *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcImagePyramidList *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImagePyramid, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImagePyramid *","current", 1, self )); 
+  }
+  arg1 = (struct mrcImagePyramid *)(argp1);
+  result = (mrcImagePyramidList *) ((arg1)->current);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mrcImagePyramidList, 0 |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_mrcImagePyramid_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_mrcImagePyramid_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImagePyramid);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_mrcImagePyramid(int argc, VALUE *argv, VALUE self) {
+  struct mrcImagePyramid *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct mrcImagePyramid *)calloc(1, sizeof(struct mrcImagePyramid));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_mrcImagePyramid(struct mrcImagePyramid *arg1) {
+    free((char *) arg1);
+}
+
 static swig_class SwigClassMrcImageInformation;
 
 SWIGINTERN VALUE
@@ -13830,12 +14257,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagXrange_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_thresOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
-  int arg2 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -13843,15 +14270,15 @@ _wrap_mrcImageInformation_flagXrange_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagXrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagXrange", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","thresOfHighValueArea", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->flagXrange = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->thresOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -13859,11 +14286,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagXrange_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_thresOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -13871,11 +14298,11 @@ _wrap_mrcImageInformation_flagXrange_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagXrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (int) ((arg1)->flagXrange);
-  vresult = SWIG_From_int((int)(result));
+  result = (double) ((arg1)->thresOfHighValueArea);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -13883,12 +14310,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagYrange_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_meanOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
-  int arg2 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -13896,15 +14323,15 @@ _wrap_mrcImageInformation_flagYrange_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagYrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","meanOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagYrange", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","meanOfHighValueArea", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->flagYrange = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->meanOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -13912,11 +14339,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagYrange_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_meanOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -13924,11 +14351,11 @@ _wrap_mrcImageInformation_flagYrange_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagYrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","meanOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (int) ((arg1)->flagYrange);
-  vresult = SWIG_From_int((int)(result));
+  result = (double) ((arg1)->meanOfHighValueArea);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -13936,12 +14363,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagZrange_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_sdOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
-  int arg2 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -13949,15 +14376,15 @@ _wrap_mrcImageInformation_flagZrange_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagZrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","sdOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagZrange", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","sdOfHighValueArea", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->flagZrange = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->sdOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -13965,11 +14392,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagZrange_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_sdOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -13977,11 +14404,11 @@ _wrap_mrcImageInformation_flagZrange_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagZrange", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","sdOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (int) ((arg1)->flagZrange);
-  vresult = SWIG_From_int((int)(result));
+  result = (double) ((arg1)->sdOfHighValueArea);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -13989,7 +14416,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_XrangeMin_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_seOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14002,15 +14429,15 @@ _wrap_mrcImageInformation_XrangeMin_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","seOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","XrangeMin", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","seOfHighValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->XrangeMin = arg2;
+  if (arg1) (arg1)->seOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14018,7 +14445,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_XrangeMin_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_seOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14030,10 +14457,10 @@ _wrap_mrcImageInformation_XrangeMin_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","seOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->XrangeMin);
+  result = (double) ((arg1)->seOfHighValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14042,7 +14469,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_XrangeMax_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_maxOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14055,15 +14482,15 @@ _wrap_mrcImageInformation_XrangeMax_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","maxOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","XrangeMax", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","maxOfHighValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->XrangeMax = arg2;
+  if (arg1) (arg1)->maxOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14071,7 +14498,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_XrangeMax_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_maxOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14083,10 +14510,10 @@ _wrap_mrcImageInformation_XrangeMax_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","maxOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->XrangeMax);
+  result = (double) ((arg1)->maxOfHighValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14095,7 +14522,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_YrangeMin_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_minOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14108,15 +14535,15 @@ _wrap_mrcImageInformation_YrangeMin_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","minOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","YrangeMin", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","minOfHighValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->YrangeMin = arg2;
+  if (arg1) (arg1)->minOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14124,7 +14551,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_YrangeMin_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_minOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14136,10 +14563,10 @@ _wrap_mrcImageInformation_YrangeMin_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","minOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->YrangeMin);
+  result = (double) ((arg1)->minOfHighValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14148,7 +14575,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_YrangeMax_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_medianOfHighValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14161,15 +14588,15 @@ _wrap_mrcImageInformation_YrangeMax_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","medianOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","YrangeMax", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","medianOfHighValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->YrangeMax = arg2;
+  if (arg1) (arg1)->medianOfHighValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14177,7 +14604,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_YrangeMax_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_medianOfHighValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14189,10 +14616,10 @@ _wrap_mrcImageInformation_YrangeMax_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","medianOfHighValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->YrangeMax);
+  result = (double) ((arg1)->medianOfHighValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14201,7 +14628,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_ZrangeMin_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_thresOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14214,15 +14641,15 @@ _wrap_mrcImageInformation_ZrangeMin_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","ZrangeMin", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","thresOfLowValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->ZrangeMin = arg2;
+  if (arg1) (arg1)->thresOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14230,7 +14657,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_ZrangeMin_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_thresOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14242,10 +14669,10 @@ _wrap_mrcImageInformation_ZrangeMin_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMin", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->ZrangeMin);
+  result = (double) ((arg1)->thresOfLowValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14254,7 +14681,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_ZrangeMax_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_meanOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14267,15 +14694,15 @@ _wrap_mrcImageInformation_ZrangeMax_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","meanOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","ZrangeMax", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","meanOfLowValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->ZrangeMax = arg2;
+  if (arg1) (arg1)->meanOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14283,7 +14710,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_ZrangeMax_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_meanOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14295,10 +14722,10 @@ _wrap_mrcImageInformation_ZrangeMax_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMax", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","meanOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->ZrangeMax);
+  result = (double) ((arg1)->meanOfLowValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14307,12 +14734,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagCentre_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_sdOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
-  int arg2 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -14320,15 +14747,15 @@ _wrap_mrcImageInformation_flagCentre_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagCentre", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","sdOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagCentre", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","sdOfLowValueArea", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->flagCentre = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->sdOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14336,11 +14763,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_flagCentre_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_sdOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -14348,11 +14775,11 @@ _wrap_mrcImageInformation_flagCentre_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagCentre", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","sdOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (int) ((arg1)->flagCentre);
-  vresult = SWIG_From_int((int)(result));
+  result = (double) ((arg1)->sdOfLowValueArea);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14360,7 +14787,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreX_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_seOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14373,15 +14800,15 @@ _wrap_mrcImageInformation_CentreX_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreX", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","seOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreX", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","seOfLowValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->CentreX = arg2;
+  if (arg1) (arg1)->seOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14389,7 +14816,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreX_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_seOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14401,10 +14828,10 @@ _wrap_mrcImageInformation_CentreX_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreX", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","seOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->CentreX);
+  result = (double) ((arg1)->seOfLowValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14413,7 +14840,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreY_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_maxOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14426,15 +14853,15 @@ _wrap_mrcImageInformation_CentreY_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreY", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","maxOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreY", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","maxOfLowValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->CentreY = arg2;
+  if (arg1) (arg1)->maxOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14442,7 +14869,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreY_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_maxOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14454,10 +14881,10 @@ _wrap_mrcImageInformation_CentreY_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreY", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","maxOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->CentreY);
+  result = (double) ((arg1)->maxOfLowValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14466,7 +14893,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreZ_set(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_minOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
@@ -14479,15 +14906,15 @@ _wrap_mrcImageInformation_CentreZ_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreZ", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","minOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreZ", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","minOfLowValueArea", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->CentreZ = arg2;
+  if (arg1) (arg1)->minOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14495,7 +14922,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInformation_CentreZ_get(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInformation_minOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
   struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14507,10 +14934,10 @@ _wrap_mrcImageInformation_CentreZ_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreZ", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","minOfLowValueArea", 1, self )); 
   }
   arg1 = (struct mrcImageInformation *)(argp1);
-  result = (double) ((arg1)->CentreZ);
+  result = (double) ((arg1)->minOfLowValueArea);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14518,68 +14945,29 @@ fail:
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_mrcImageInformation_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_mrcImageInformation_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImageInformation);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_mrcImageInformation(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageInformation *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct mrcImageInformation *)calloc(1, sizeof(struct mrcImageInformation));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_mrcImageInformation(struct mrcImageInformation *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageSmoothingInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_medianOfLowValueArea_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","medianOfLowValueArea", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","medianOfLowValueArea", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->medianOfLowValueArea = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14587,23 +14975,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_medianOfLowValueArea_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","medianOfLowValueArea", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  result = (long) ((arg1)->mode);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->medianOfLowValueArea);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14611,28 +14999,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sx_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
-  mrcImageParaTypeReal arg2 ;
+_wrap_mrcImageInformation_flagXrange_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagXrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sx", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagXrange", 2, argv[0] ));
   } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  if (arg1) (arg1)->sx = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagXrange = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14640,23 +15028,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sx_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_flagXrange_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcImageParaTypeReal result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagXrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  result = (mrcImageParaTypeReal) ((arg1)->sx);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (int) ((arg1)->flagXrange);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14664,28 +15052,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sy_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
-  mrcImageParaTypeReal arg2 ;
+_wrap_mrcImageInformation_flagYrange_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagYrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sy", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagYrange", 2, argv[0] ));
   } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  if (arg1) (arg1)->sy = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagYrange = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14693,23 +15081,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sy_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_flagYrange_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcImageParaTypeReal result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagYrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  result = (mrcImageParaTypeReal) ((arg1)->sy);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (int) ((arg1)->flagYrange);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14717,28 +15105,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sz_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
-  mrcImageParaTypeReal arg2 ;
+_wrap_mrcImageInformation_flagZrange_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagZrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sz", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagZrange", 2, argv[0] ));
   } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  if (arg1) (arg1)->sz = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagZrange = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14746,23 +15134,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sz_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_flagZrange_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcImageParaTypeReal result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagZrange", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  result = (mrcImageParaTypeReal) ((arg1)->sz);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (int) ((arg1)->flagZrange);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14770,8 +15158,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sigma_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_XrangeMin_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14781,17 +15169,17 @@ _wrap_lmrcImageSmoothingInfo_sigma_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sigma", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMin", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  arg1 = (struct mrcImageInformation *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","sigma", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","XrangeMin", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->sigma = arg2;
+  if (arg1) (arg1)->XrangeMin = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14799,8 +15187,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_sigma_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+_wrap_mrcImageInformation_XrangeMin_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double result;
@@ -14809,12 +15197,12 @@ _wrap_lmrcImageSmoothingInfo_sigma_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sigma", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMin", 1, self )); 
   }
-  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
-  result = (double) ((arg1)->sigma);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->XrangeMin);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -14822,68 +15210,29 @@ fail:
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingInfo_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_lmrcImageSmoothingInfo_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageSmoothingInfo);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_lmrcImageSmoothingInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageSmoothingInfo *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct lmrcImageSmoothingInfo *)calloc(1, sizeof(struct lmrcImageSmoothingInfo));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_lmrcImageSmoothingInfo(struct lmrcImageSmoothingInfo *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageCVEInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sx_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_XrangeMax_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sx", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","XrangeMax", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sx = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->XrangeMax = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14891,23 +15240,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sx_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+_wrap_mrcImageInformation_XrangeMax_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","XrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  result = (long) ((arg1)->sx);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->XrangeMax);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14915,28 +15264,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sy_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_YrangeMin_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMin", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sy", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","YrangeMin", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sy = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->YrangeMin = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14944,23 +15293,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sy_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+_wrap_mrcImageInformation_YrangeMin_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMin", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  result = (long) ((arg1)->sy);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->YrangeMin);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -14968,28 +15317,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sz_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_YrangeMax_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sz", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","YrangeMax", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sz = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->YrangeMax = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -14997,91 +15346,105 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_sz_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+_wrap_mrcImageInformation_YrangeMax_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","YrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageCVEInfo *)(argp1);
-  result = (long) ((arg1)->sz);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->YrangeMax);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageCVEInfo_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_lmrcImageCVEInfo_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageCVEInfo);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
+_wrap_mrcImageInformation_ZrangeMin_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
   
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMin", 1, self )); 
+  }
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","ZrangeMin", 2, argv[0] ));
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->ZrangeMin = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageCVEInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCVEInfo *result = 0 ;
+_wrap_mrcImageInformation_ZrangeMin_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageCVEInfo *)calloc(1, sizeof(struct lmrcImageCVEInfo));
-  DATA_PTR(self) = result;
-  return self;
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMin", 1, self )); 
+  }
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->ZrangeMin);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN void
-free_lmrcImageCVEInfo(struct lmrcImageCVEInfo *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageTfunctionInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sx_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_ZrangeMax_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sx", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","ZrangeMax", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sx = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->ZrangeMax = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15089,23 +15452,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sx_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
+_wrap_mrcImageInformation_ZrangeMax_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sx", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","ZrangeMax", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  result = (long) ((arg1)->sx);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->ZrangeMax);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15113,28 +15476,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sy_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_flagCentre_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagCentre", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sy", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagCentre", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sy = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagCentre = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15142,23 +15505,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sy_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
+_wrap_mrcImageInformation_flagCentre_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","flagCentre", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  result = (long) ((arg1)->sy);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (int) ((arg1)->flagCentre);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15166,28 +15529,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sz_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_CentreX_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreX", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sz", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreX", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->sz = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->CentreX = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15195,91 +15558,105 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_sz_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
+_wrap_mrcImageInformation_CentreX_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sz", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreX", 1, self )); 
   }
-  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
-  result = (long) ((arg1)->sz);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->CentreX);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunctionInfo_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_lmrcImageTfunctionInfo_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageTfunctionInfo);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
+_wrap_mrcImageInformation_CentreY_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
   
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreY", 1, self )); 
+  }
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreY", 2, argv[0] ));
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->CentreY = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageTfunctionInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageTfunctionInfo *result = 0 ;
+_wrap_mrcImageInformation_CentreY_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageTfunctionInfo *)calloc(1, sizeof(struct lmrcImageTfunctionInfo));
-  DATA_PTR(self) = result;
-  return self;
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreY", 1, self )); 
+  }
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->CentreY);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN void
-free_lmrcImageTfunctionInfo(struct lmrcImageTfunctionInfo *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageHighlightInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageInformation_CentreZ_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreZ", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","CentreZ", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->CentreZ = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15287,23 +15664,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+_wrap_mrcImageInformation_CentreZ_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","CentreZ", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  result = (long) ((arg1)->mode);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->CentreZ);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15311,28 +15688,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_Bias_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
-  float arg2 ;
+_wrap_mrcImageInformation_thresHigh_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Bias", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresHigh", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","Bias", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","thresHigh", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->Bias = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->thresHigh = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15340,23 +15717,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_Bias_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+_wrap_mrcImageInformation_thresHigh_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Bias", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresHigh", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  result = (float) ((arg1)->Bias);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->thresHigh);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15364,28 +15741,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_Grad_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
-  float arg2 ;
+_wrap_mrcImageInformation_thresLow_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Grad", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresLow", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct mrcImageInformation *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","Grad", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","thresLow", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->Grad = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->thresLow = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15393,23 +15770,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_Grad_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+_wrap_mrcImageInformation_thresLow_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *arg1 = (struct mrcImageInformation *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Grad", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageInformation *","thresLow", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
-  result = (float) ((arg1)->Grad);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct mrcImageInformation *)(argp1);
+  result = (double) ((arg1)->thresLow);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15418,14 +15795,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightInfo_allocate(VALUE self) {
+_wrap_mrcImageInformation_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_lmrcImageHighlightInfo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_mrcImageInformation_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageHighlightInfo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImageInformation);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -15434,13 +15811,13 @@ _wrap_lmrcImageHighlightInfo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageHighlightInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighlightInfo *result = 0 ;
+_wrap_new_mrcImageInformation(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageInformation *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageHighlightInfo *)calloc(1, sizeof(struct lmrcImageHighlightInfo));
+  result = (struct mrcImageInformation *)calloc(1, sizeof(struct mrcImageInformation));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -15449,15 +15826,15 @@ fail:
 
 
 SWIGINTERN void
-free_lmrcImageHighlightInfo(struct lmrcImageHighlightInfo *arg1) {
+free_mrcImageInformation(struct mrcImageInformation *arg1) {
     free((char *) arg1);
 }
 
-static swig_class SwigClassLmrcImageLowPassFilterInfo;
+static swig_class SwigClassLmrcImageSmoothingInfo;
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15467,11 +15844,11 @@ _wrap_lmrcImageLowPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","mode", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
   ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
@@ -15485,8 +15862,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   long result;
@@ -15495,11 +15872,11 @@ _wrap_lmrcImageLowPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","mode", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
   result = (long) ((arg1)->mode);
   vresult = SWIG_From_long((long)(result));
   return vresult;
@@ -15509,9 +15886,9 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_hvp_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageSmoothingInfo_sx_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+  mrcImageParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   float val2 ;
@@ -15520,17 +15897,17 @@ _wrap_lmrcImageLowPassFilterInfo_hvp_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","hvp", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
   ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvp", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sx", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->hvp = arg2;
+  arg2 = (mrcImageParaTypeReal)(val2);
+  if (arg1) (arg1)->sx = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15538,22 +15915,22 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_hvp_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_sx_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  mrcImageParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","hvp", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->hvp);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  result = (mrcImageParaTypeReal) ((arg1)->sx);
   vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
@@ -15562,9 +15939,9 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_width_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageSmoothingInfo_sy_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+  mrcImageParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   float val2 ;
@@ -15573,17 +15950,17 @@ _wrap_lmrcImageLowPassFilterInfo_width_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","width", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
   ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","width", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sy", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->width = arg2;
+  arg2 = (mrcImageParaTypeReal)(val2);
+  if (arg1) (arg1)->sy = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15591,22 +15968,22 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_width_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_sy_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  mrcImageParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","width", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->width);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  result = (mrcImageParaTypeReal) ((arg1)->sy);
   vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
@@ -15614,68 +15991,29 @@ fail:
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilterInfo_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_lmrcImageLowPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageLowPassFilterInfo);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_lmrcImageLowPassFilterInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageLowPassFilterInfo *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct lmrcImageLowPassFilterInfo *)calloc(1, sizeof(struct lmrcImageLowPassFilterInfo));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_lmrcImageLowPassFilterInfo(struct lmrcImageLowPassFilterInfo *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageHighPassFilterInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
-  long arg2 ;
+_wrap_lmrcImageSmoothingInfo_sz_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+  mrcImageParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  float val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","sz", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  arg2 = (mrcImageParaTypeReal)(val2);
+  if (arg1) (arg1)->sz = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15683,52 +16021,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_sz_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  mrcImageParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  result = (long) ((arg1)->mode);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
-fail:
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  result = (mrcImageParaTypeReal) ((arg1)->sz);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_hvp_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageSmoothingInfo_sigma_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","hvp", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sigma", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvp", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","sigma", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->hvp = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->sigma = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15736,52 +16074,91 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_hvp_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+_wrap_lmrcImageSmoothingInfo_sigma_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *arg1 = (struct lmrcImageSmoothingInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","hvp", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageSmoothingInfo *","sigma", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->hvp);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageSmoothingInfo *)(argp1);
+  result = (double) ((arg1)->sigma);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_width_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageSmoothingInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageSmoothingInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageSmoothingInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageSmoothingInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageSmoothingInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageSmoothingInfo *)calloc(1, sizeof(struct lmrcImageSmoothingInfo));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_lmrcImageSmoothingInfo(struct lmrcImageSmoothingInfo *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassLmrcImageCVEInfo;
+
+SWIGINTERN VALUE
+_wrap_lmrcImageCVEInfo_sx_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","width", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","width", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sx", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->width = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->sx = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15789,23 +16166,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_width_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+_wrap_lmrcImageCVEInfo_sx_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","width", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->width);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  result = (long) ((arg1)->sx);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15813,28 +16190,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_pathWindowLow_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageCVEInfo_sy_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowLow", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","pathWindowLow", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sy", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->pathWindowLow = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->sy = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15842,23 +16219,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_pathWindowLow_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+_wrap_lmrcImageCVEInfo_sy_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowLow", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->pathWindowLow);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  result = (long) ((arg1)->sy);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15866,28 +16243,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_pathWindowHigh_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageCVEInfo_sz_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowHigh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","pathWindowHigh", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sz", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->pathWindowHigh = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->sz = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15895,23 +16272,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_pathWindowHigh_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+_wrap_lmrcImageCVEInfo_sz_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *arg1 = (struct lmrcImageCVEInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowHigh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCVEInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->pathWindowHigh);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageCVEInfo *)(argp1);
+  result = (long) ((arg1)->sz);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -15920,14 +16297,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilterInfo_allocate(VALUE self) {
+_wrap_lmrcImageCVEInfo_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_lmrcImageHighPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_lmrcImageCVEInfo_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageHighPassFilterInfo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageCVEInfo);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -15936,13 +16313,13 @@ _wrap_lmrcImageHighPassFilterInfo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageHighPassFilterInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageHighPassFilterInfo *result = 0 ;
+_wrap_new_lmrcImageCVEInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCVEInfo *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageHighPassFilterInfo *)calloc(1, sizeof(struct lmrcImageHighPassFilterInfo));
+  result = (struct lmrcImageCVEInfo *)calloc(1, sizeof(struct lmrcImageCVEInfo));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -15951,15 +16328,15 @@ fail:
 
 
 SWIGINTERN void
-free_lmrcImageHighPassFilterInfo(struct lmrcImageHighPassFilterInfo *arg1) {
+free_lmrcImageCVEInfo(struct lmrcImageCVEInfo *arg1) {
     free((char *) arg1);
 }
 
-static swig_class SwigClassLmrcImageBandPassFilterInfo;
+static swig_class SwigClassLmrcImageTfunctionInfo;
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageTfunctionInfo_sx_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
   long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15969,17 +16346,17 @@ _wrap_lmrcImageBandPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
   ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sx", 2, argv[0] ));
   } 
   arg2 = (long)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  if (arg1) (arg1)->sx = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -15987,8 +16364,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageTfunctionInfo_sx_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   long result;
@@ -15997,12 +16374,12 @@ _wrap_lmrcImageBandPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sx", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (long) ((arg1)->mode);
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
+  result = (long) ((arg1)->sx);
   vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
@@ -16011,28 +16388,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_hvl_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageTfunctionInfo_sy_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvl", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvl", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sy", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->hvl = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->sy = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16040,23 +16417,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_hvl_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageTfunctionInfo_sy_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvl", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sy", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->hvl);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
+  result = (long) ((arg1)->sy);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16064,28 +16441,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_hvh_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageTfunctionInfo_sz_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvh", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","sz", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->hvh = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->sz = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16093,105 +16470,91 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_hvh_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageTfunctionInfo_sz_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *arg1 = (struct lmrcImageTfunctionInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageTfunctionInfo *","sz", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->hvh);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageTfunctionInfo *)(argp1);
+  result = (long) ((arg1)->sz);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_wl_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  float arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  float val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wl", 1, self )); 
+_wrap_lmrcImageTfunctionInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageTfunctionInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageTfunctionInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","wl", 2, argv[0] ));
-  } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->wl = arg2;
-  return Qnil;
-fail:
-  return Qnil;
-}
-
+  
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_wl_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  float result;
-  VALUE vresult = Qnil;
+_wrap_new_lmrcImageTfunctionInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageTfunctionInfo *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wl", 1, self )); 
-  }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->wl);
-  vresult = SWIG_From_float((float)(result));
-  return vresult;
+  result = (struct lmrcImageTfunctionInfo *)calloc(1, sizeof(struct lmrcImageTfunctionInfo));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_lmrcImageTfunctionInfo(struct lmrcImageTfunctionInfo *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassLmrcImageHighlightInfo;
+
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_wh_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageHighlightInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  long val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","mode", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","wh", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->wh = arg2;
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->mode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16199,23 +16562,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_wh_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageHighlightInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  long result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wh", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","mode", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (float) ((arg1)->wh);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  result = (long) ((arg1)->mode);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16223,28 +16586,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_flagLowWeight_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  int arg2 ;
+_wrap_lmrcImageHighlightInfo_Bias_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  float val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","flagLowWeight", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Bias", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagLowWeight", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","Bias", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->flagLowWeight = arg2;
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->Bias = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16252,23 +16615,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_flagLowWeight_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageHighlightInfo_Bias_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  float result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","flagLowWeight", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Bias", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (int) ((arg1)->flagLowWeight);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  result = (float) ((arg1)->Bias);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16276,28 +16639,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_lowWeight_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
-  double arg2 ;
+_wrap_lmrcImageHighlightInfo_Grad_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
+  float val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","lowWeight", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Grad", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lowWeight", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","Grad", 2, argv[0] ));
   } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->lowWeight = arg2;
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->Grad = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16305,23 +16668,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_lowWeight_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+_wrap_lmrcImageHighlightInfo_Grad_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *arg1 = (struct lmrcImageHighlightInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double result;
+  float result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","lowWeight", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighlightInfo *","Grad", 1, self )); 
   }
-  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
-  result = (double) ((arg1)->lowWeight);
-  vresult = SWIG_From_double((double)(result));
+  arg1 = (struct lmrcImageHighlightInfo *)(argp1);
+  result = (float) ((arg1)->Grad);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16330,14 +16693,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilterInfo_allocate(VALUE self) {
+_wrap_lmrcImageHighlightInfo_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_lmrcImageBandPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_lmrcImageHighlightInfo_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageBandPassFilterInfo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageHighlightInfo);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -16346,13 +16709,13 @@ _wrap_lmrcImageBandPassFilterInfo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageBandPassFilterInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageBandPassFilterInfo *result = 0 ;
+_wrap_new_lmrcImageHighlightInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighlightInfo *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageBandPassFilterInfo *)calloc(1, sizeof(struct lmrcImageBandPassFilterInfo));
+  result = (struct lmrcImageHighlightInfo *)calloc(1, sizeof(struct lmrcImageHighlightInfo));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -16361,87 +16724,112 @@ fail:
 
 
 SWIGINTERN void
-free_lmrcImageBandPassFilterInfo(struct lmrcImageBandPassFilterInfo *arg1) {
+free_lmrcImageHighlightInfo(struct lmrcImageHighlightInfo *arg1) {
     free((char *) arg1);
 }
 
+static swig_class SwigClassLmrcImageLowPassFilterInfo;
+
 SWIGINTERN VALUE
-_wrap_mrcInit(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_lmrcImageLowPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  long val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcInit", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","mode", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcInit", 2, argv[1] ));
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+  } 
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->mode = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageLowPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  arg2 = (char *)(buf2);
-  result = (mrcStatusType)mrcInit(arg1,arg2);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","mode", 1, self )); 
+  }
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  result = (long) ((arg1)->mode);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcDefaultHeaderValueSet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageLowPassFilterInfo_hvp_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcDefaultHeaderValueSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","hvp", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (mrcStatusType)mrcDefaultHeaderValueSet(arg1);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  return vresult;
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvp", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->hvp = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcDefaultHeaderValueSetOnlyFixedValue(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageLowPassFilterInfo_hvp_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcStatusType result;
+  float result;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcDefaultHeaderValueSetOnlyFixedValue", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","hvp", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (mrcStatusType)mrcDefaultHeaderValueSetOnlyFixedValue(arg1);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->hvp);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16449,92 +16837,120 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcHiddenDataSet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  long arg2 ;
+_wrap_lmrcImageLowPassFilterInfo_width_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  float val2 ;
   int ecode2 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHiddenDataSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","width", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcHiddenDataSet", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","width", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  result = (mrcStatusType)mrcHiddenDataSet(arg1,arg2);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  return vresult;
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->width = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageFree(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_lmrcImageLowPassFilterInfo_width_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *arg1 = (struct lmrcImageLowPassFilterInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageFree", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageFree", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageLowPassFilterInfo *","width", 1, self )); 
   }
-  arg2 = (char *)(buf2);
-  mrcImageFree(arg1,arg2);
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg1 = (struct lmrcImageLowPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->width);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
   return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_lmrcImageLowPassFilterInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageLowPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageLowPassFilterInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageLowPassFilterInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageLowPassFilterInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageLowPassFilterInfo *)calloc(1, sizeof(struct lmrcImageLowPassFilterInfo));
+  DATA_PTR(self) = result;
+  return self;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_lmrcImageLowPassFilterInfo(struct lmrcImageLowPassFilterInfo *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassLmrcImageHighPassFilterInfo;
+
 SWIGINTERN VALUE
-_wrap_mrcTailerInit(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageHighPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
   long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   long val2 ;
   int ecode2 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerInit", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","mode", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcTailerInit", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
   } 
   arg2 = (long)(val2);
-  mrcTailerInit(arg1,arg2);
+  if (arg1) (arg1)->mode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16542,36 +16958,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerCopy(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  long arg3 ;
+_wrap_lmrcImageHighPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  long val3 ;
-  int ecode3 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerCopy", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","mode", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerCopy", 2, argv[1] )); 
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  result = (long) ((arg1)->mode);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHighPassFilterInfo_hvp_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_long(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","mrcTailerCopy", 3, argv[2] ));
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","hvp", 1, self )); 
+  }
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvp", 2, argv[0] ));
   } 
-  arg3 = (long)(val3);
-  mrcTailerCopy(arg1,arg2,arg3);
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->hvp = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -16579,283 +17011,2390 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileReadGeneral(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  long arg5 ;
+_wrap_lmrcImageHighPassFilterInfo_hvp_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  int res4 ;
-  char *buf4 = 0 ;
-  int alloc4 = 0 ;
-  long val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
+  float result;
   VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadGeneral", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","hvp", 1, self )); 
   }
-  arg4 = (char *)(buf4);
-  ecode5 = SWIG_AsVal_long(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcFileReadGeneral", 5, argv[4] ));
-  } 
-  arg5 = (long)(val5);
-  result = (mrcStatusType)mrcFileReadGeneral(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->hvp);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageReadGeneral(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  long arg5 ;
+_wrap_lmrcImageHighPassFilterInfo_width_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  int res4 ;
-  char *buf4 = 0 ;
-  int alloc4 = 0 ;
-  long val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  float val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadGeneral", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","width", 1, self )); 
   }
-  arg4 = (char *)(buf4);
-  ecode5 = SWIG_AsVal_long(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcImageReadGeneral", 5, argv[4] ));
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","width", 2, argv[0] ));
   } 
-  arg5 = (long)(val5);
-  result = (mrcStatusType)mrcImageReadGeneral(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
-  return vresult;
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->width = arg2;
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcHeaderReadGeneral(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  long arg5 ;
+_wrap_lmrcImageHighPassFilterInfo_width_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  int res4 ;
-  char *buf4 = 0 ;
-  int alloc4 = 0 ;
-  long val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
+  float result;
   VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadGeneral", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","width", 1, self )); 
   }
-  arg4 = (char *)(buf4);
-  ecode5 = SWIG_AsVal_long(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcHeaderReadGeneral", 5, argv[4] ));
-  } 
-  arg5 = (long)(val5);
-  result = (mrcStatusType)mrcHeaderReadGeneral(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->width);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerReadGeneral(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  long arg5 ;
+_wrap_lmrcImageHighPassFilterInfo_pathWindowLow_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  int res4 ;
-  char *buf4 = 0 ;
-  int alloc4 = 0 ;
-  long val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  float val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadGeneral", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowLow", 1, self )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","pathWindowLow", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->pathWindowLow = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHighPassFilterInfo_pathWindowLow_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowLow", 1, self )); 
+  }
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->pathWindowLow);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHighPassFilterInfo_pathWindowHigh_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowHigh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","pathWindowHigh", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->pathWindowHigh = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHighPassFilterInfo_pathWindowHigh_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *arg1 = (struct lmrcImageHighPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageHighPassFilterInfo *","pathWindowHigh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageHighPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->pathWindowHigh);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_lmrcImageHighPassFilterInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageHighPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageHighPassFilterInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageHighPassFilterInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageHighPassFilterInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageHighPassFilterInfo *)calloc(1, sizeof(struct lmrcImageHighPassFilterInfo));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_lmrcImageHighPassFilterInfo(struct lmrcImageHighPassFilterInfo *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassLmrcImageBandPassFilterInfo;
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  long arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","mode", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+  } 
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->mode = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","mode", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (long) ((arg1)->mode);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_hvl_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvl", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvl", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->hvl = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_hvl_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvl", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->hvl);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_hvh_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","hvh", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->hvh = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_hvh_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","hvh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->hvh);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_wl_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wl", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","wl", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->wl = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_wl_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wl", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->wl);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_wh_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  float arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","wh", 2, argv[0] ));
+  } 
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->wh = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_wh_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","wh", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (float) ((arg1)->wh);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_flagLowWeight_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","flagLowWeight", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagLowWeight", 2, argv[0] ));
+  } 
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagLowWeight = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_flagLowWeight_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","flagLowWeight", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (int) ((arg1)->flagLowWeight);
+  vresult = SWIG_From_int((int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_lowWeight_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","lowWeight", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lowWeight", 2, argv[0] ));
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->lowWeight = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_lowWeight_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *arg1 = (struct lmrcImageBandPassFilterInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageBandPassFilterInfo *","lowWeight", 1, self )); 
+  }
+  arg1 = (struct lmrcImageBandPassFilterInfo *)(argp1);
+  result = (double) ((arg1)->lowWeight);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_lmrcImageBandPassFilterInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageBandPassFilterInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageBandPassFilterInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageBandPassFilterInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageBandPassFilterInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageBandPassFilterInfo *)calloc(1, sizeof(struct lmrcImageBandPassFilterInfo));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_lmrcImageBandPassFilterInfo(struct lmrcImageBandPassFilterInfo *arg1) {
+    free((char *) arg1);
+}
+
+SWIGINTERN VALUE
+_wrap_mrcInit(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcInit", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcInit", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  result = (mrcStatusType)mrcInit(arg1,arg2);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcDefaultHeaderValueSet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcDefaultHeaderValueSet", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  result = (mrcStatusType)mrcDefaultHeaderValueSet(arg1);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcDefaultHeaderValueSetOnlyFixedValue(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcDefaultHeaderValueSetOnlyFixedValue", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  result = (mrcStatusType)mrcDefaultHeaderValueSetOnlyFixedValue(arg1);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHiddenDataSet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  long arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHiddenDataSet", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcHiddenDataSet", 2, argv[1] ));
+  } 
+  arg2 = (long)(val2);
+  result = (mrcStatusType)mrcHiddenDataSet(arg1,arg2);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageFree(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageFree", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageFree", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  mrcImageFree(arg1,arg2);
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerInit(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  long arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerInit", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcTailerInit", 2, argv[1] ));
+  } 
+  arg2 = (long)(val2);
+  mrcTailerInit(arg1,arg2);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerCopy(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  long arg3 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  long val3 ;
+  int ecode3 = 0 ;
+  
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerCopy", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerCopy", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_long(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","mrcTailerCopy", 3, argv[2] ));
+  } 
+  arg3 = (long)(val3);
+  mrcTailerCopy(arg1,arg2,arg3);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileReadGeneral(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  long arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  long val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadGeneral", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcFileReadGeneral", 4, argv[3] ));
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcFileReadGeneral", 5, argv[4] ));
+  } 
+  arg5 = (long)(val5);
+  result = (mrcStatusType)mrcFileReadGeneral(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageReadGeneral(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  long arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  long val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadGeneral", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcImageReadGeneral", 4, argv[3] ));
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcImageReadGeneral", 5, argv[4] ));
+  } 
+  arg5 = (long)(val5);
+  result = (mrcStatusType)mrcImageReadGeneral(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHeaderReadGeneral(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  long arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  long val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadGeneral", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcHeaderReadGeneral", 4, argv[3] ));
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcHeaderReadGeneral", 5, argv[4] ));
+  } 
+  arg5 = (long)(val5);
+  result = (mrcStatusType)mrcHeaderReadGeneral(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerReadGeneral(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  long arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  long val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadGeneral", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 4, argv[3] ));
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcTailerReadGeneral", 5, argv[4] ));
+  } 
+  arg5 = (long)(val5);
+  result = (mrcStatusType)mrcTailerReadGeneral(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileGeneralListPrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcFileGeneralListPrint", 1, argv[0] )); 
+  }
+  arg1 = (FILE *)(argp1);
+  result = (mrcStatusType)mrcFileGeneralListPrint(arg1);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileRead(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileRead", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileRead", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileRead", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileRead", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcFileRead(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageRead(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageRead", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageRead", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageRead", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageRead", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcImageRead(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHeaderRead(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderRead", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderRead", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderRead", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderRead", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcHeaderRead(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerRead(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerRead", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerRead", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerRead", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerRead", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcTailerRead(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadFEIextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadFEIextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadFEIextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileReadFEIextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcFileReadFEIextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadFEIextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadFEIextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadFEIextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageReadFEIextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcImageReadFEIextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHeaderReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadFEIextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadFEIextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadFEIextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderReadFEIextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcHeaderReadFEIextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadFEIextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadFEIextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadFEIextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerReadFEIextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcTailerReadFEIextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadIMODextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadIMODextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadIMODextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileReadIMODextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcFileReadIMODextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadIMODextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadIMODextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadIMODextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageReadIMODextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcImageReadIMODextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHeaderReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadIMODextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadIMODextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadIMODextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderReadIMODextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcHeaderReadIMODextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadIMODextendedMRC", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadIMODextendedMRC", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadIMODextendedMRC", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerReadIMODextendedMRC", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcTailerReadIMODextendedMRC(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageByteSwap(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  long arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageByteSwap", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcImageByteSwap", 2, argv[1] ));
+  } 
+  arg2 = (long)(val2);
+  result = (int)mrcImageByteSwap(arg1,arg2);
+  vresult = SWIG_From_int((int)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileWrite(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileWrite", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileWrite", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileWrite", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileWrite", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcFileWrite(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageWrite(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageWrite", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageWrite", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageWrite", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageWrite", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcImageWrite(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcHeaderWrite(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderWrite", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderWrite", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderWrite", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderWrite", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcHeaderWrite(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcTailerWrite(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerWrite", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerWrite", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerWrite", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerWrite", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  result = (mrcStatusType)mrcTailerWrite(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcFileWriteLowerResolution(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  char *arg3 = (char *) 0 ;
+  long arg4 ;
+  long arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  long val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileWriteLowerResolution", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileWriteLowerResolution", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileWriteLowerResolution", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileWriteLowerResolution", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcFileWriteLowerResolution", 5, argv[4] ));
+  } 
+  arg5 = (long)(val5);
+  result = (mrcStatusType)mrcFileWriteLowerResolution(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return vresult;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageDataGetbyAU(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  double *arg5 = (double *) 0 ;
+  mrcPixelDataType arg6 ;
+  mrcPixelDataHowToGet arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 7) || (argc > 7)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataGetbyAU", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "double *","mrcImageDataGetbyAU", 5, argv[4] )); 
+  }
+  arg5 = (double *)(argp5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcImageDataGetbyAU", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataType)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcImageDataGetbyAU", 7, argv[6] ));
+  } 
+  arg7 = (mrcPixelDataHowToGet)(val7);
+  result = (double)mrcImageDataGetbyAU(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcPixelDataGet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  double *arg5 = (double *) 0 ;
+  mrcPixelDataType arg6 ;
+  mrcPixelDataHowToGet arg7 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 7) || (argc > 7)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGet", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "double *","mrcPixelDataGet", 5, argv[4] )); 
+  }
+  arg5 = (double *)(argp5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelDataGet", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataType)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelDataGet", 7, argv[6] ));
+  } 
+  arg7 = (mrcPixelDataHowToGet)(val7);
+  result = (double)mrcPixelDataGet(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcPixelsDataGet(int argc, VALUE *argv, VALUE self) {
+  float *arg1 = (float *) 0 ;
+  mrcImageParaTypeRealCoord *arg2 = (mrcImageParaTypeRealCoord *) 0 ;
+  int arg3 ;
+  mrcImage *arg4 = (mrcImage *) 0 ;
+  mrcPixelDataType arg5 ;
+  mrcPixelDataHowToGet arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  
+  if ((argc < 6) || (argc > 6)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
   }
-  arg3 = (char *)(buf3);
-  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_float, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "float *","mrcPixelsDataGet", 1, argv[0] )); 
+  }
+  arg1 = (float *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImageParaTypeRealCoord, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord *","mrcPixelsDataGet", 2, argv[1] )); 
+  }
+  arg2 = (mrcImageParaTypeRealCoord *)(argp2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","mrcPixelsDataGet", 3, argv[2] ));
+  } 
+  arg3 = (int)(val3);
+  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcTailerReadGeneral", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelsDataGet", 4, argv[3] )); 
   }
-  arg4 = (char *)(buf4);
-  ecode5 = SWIG_AsVal_long(argv[4], &val5);
+  arg4 = (mrcImage *)(argp4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
   if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcTailerReadGeneral", 5, argv[4] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelsDataGet", 5, argv[4] ));
   } 
-  arg5 = (long)(val5);
-  result = (mrcStatusType)mrcTailerReadGeneral(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
-  return vresult;
+  arg5 = (mrcPixelDataType)(val5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelsDataGet", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataHowToGet)(val6);
+  mrcPixelsDataGet(arg1,arg2,arg3,arg4,arg5,arg6);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileGeneralListPrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_mrcPixelDataGetbyMatrix3D(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  matrix3DParaTypeReal (*arg3)[4] ;
+  mrcPixelDataHowToGet arg4 ;
+  int arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  mrcStatusType result;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetbyMatrix3D", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetbyMatrix3D", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","mrcPixelDataGetbyMatrix3D", 3, argv[2] )); 
+  } 
+  arg3 = (float (*)[4])(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelDataGetbyMatrix3D", 4, argv[3] ));
+  } 
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","mrcPixelDataGetbyMatrix3D", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  mrcPixelDataGetbyMatrix3D(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcPixelDataGetFloatImage(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double result;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcFileGeneralListPrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatImage", 1, argv[0] )); 
   }
-  arg1 = (FILE *)(argp1);
-  result = (mrcStatusType)mrcFileGeneralListPrint(arg1);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  result = (double)mrcPixelDataGetFloatImage(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -16863,22 +19402,20 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileRead(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcPixelDataGetFloatFTRe(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 4) || (argc > 4)) {
@@ -16886,1355 +19423,1312 @@ _wrap_mrcFileRead(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileRead", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatFTRe", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileRead", 2, argv[1] ));
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  result = (double)mrcPixelDataGetFloatFTRe(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcPixelDataGetFloatFTIm(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileRead", 3, argv[2] ));
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatFTIm", 1, argv[0] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileRead", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcFileRead(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  result = (double)mrcPixelDataGetFloatFTIm(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageRead(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcInfoSet(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  FILE *arg2 = (FILE *) 0 ;
+  FILE *arg3 = (FILE *) 0 ;
+  mrcImageParaTypeInteger arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
   
   if ((argc < 4) || (argc > 4)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageRead", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcInfoSet", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageRead", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","mrcInfoSet", 2, argv[1] )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  arg2 = (FILE *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageRead", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "FILE *","mrcInfoSet", 3, argv[2] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  arg3 = (FILE *)(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageRead", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcInfoSet", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcImageRead(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  mrcInfoSet(arg1,arg2,arg3,arg4);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcHeaderRead(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageDataSet(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  mrcImageParaTypeReal arg5 ;
+  float arg6 ;
+  mrcImageDataSetMode arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 7) || (argc > 7)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderRead", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSet", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderRead", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSet", 2, argv[1] )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderRead", 3, argv[2] ));
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_float(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 5, argv[4] ));
+  } 
+  arg5 = (mrcImageParaTypeReal)(val5);
+  ecode6 = SWIG_AsVal_float(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "float","mrcImageDataSet", 6, argv[5] ));
+  } 
+  arg6 = (float)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcImageDataSetMode","mrcImageDataSet", 7, argv[6] ));
+  } 
+  arg7 = (mrcImageDataSetMode)(val7);
+  mrcImageDataSet(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcImageDataSetbyAU(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  double arg5 ;
+  mrcPixelDataType arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 6) || (argc > 6)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSetbyAU", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderRead", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcHeaderRead(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_double(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcImageDataSetbyAU", 5, argv[4] ));
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcImageDataSetbyAU", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataType)(val6);
+  result = (double)mrcImageDataSetbyAU(arg1,arg2,arg3,arg4,arg5,arg6);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerRead(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcPixelDataSet(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  double arg5 ;
+  mrcPixelDataType arg6 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  double val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 6) || (argc > 6)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSet", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_double(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSet", 5, argv[4] ));
+  } 
+  arg5 = (double)(val5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelDataSet", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataType)(val6);
+  result = (double)mrcPixelDataSet(arg1,arg2,arg3,arg4,arg5,arg6);
+  vresult = SWIG_From_double((double)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_mrcPixelDataSetFloatImage(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
+  double arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  double val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerRead", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatImage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerRead", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerRead", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerRead", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcTailerRead(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  ecode5 = SWIG_AsVal_double(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatImage", 5, argv[4] ));
+  } 
+  arg5 = (double)(val5);
+  mrcPixelDataSetFloatImage(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcPixelDataSetFloatFTRe(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
+  double arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  double val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadFEIextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatFTRe", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadFEIextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadFEIextendedMRC", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileReadFEIextendedMRC", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcFileReadFEIextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  ecode5 = SWIG_AsVal_double(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatFTRe", 5, argv[4] ));
+  } 
+  arg5 = (double)(val5);
+  mrcPixelDataSetFloatFTRe(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcPixelDataSetFloatFTIm(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeInteger arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeInteger arg4 ;
+  double arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  double val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadFEIextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatFTIm", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadFEIextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadFEIextendedMRC", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageReadFEIextendedMRC", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcImageReadFEIextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg4 = (mrcImageParaTypeInteger)(val4);
+  ecode5 = SWIG_AsVal_double(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatFTIm", 5, argv[4] ));
+  } 
+  arg5 = (double)(val5);
+  mrcPixelDataSetFloatFTIm(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcHeaderReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcStatDataSet(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeInteger arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  int val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadFEIextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcStatDataSet", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadFEIextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadFEIextendedMRC", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderReadFEIextendedMRC", 4, argv[3] ));
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcStatDataSet", 2, argv[1] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcHeaderReadFEIextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImageParaTypeInteger)(val2);
+  mrcStatDataSet(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerReadFEIextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageXSection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  double arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadFEIextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXSection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadFEIextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadFEIextendedMRC", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXSection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerReadFEIextendedMRC", 4, argv[3] ));
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageXSection", 3, argv[2] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcTailerReadFEIextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg3 = (double)(val3);
+  lmrcImageXSection(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageYSection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  double arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileReadIMODextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYSection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileReadIMODextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileReadIMODextendedMRC", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYSection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileReadIMODextendedMRC", 4, argv[3] ));
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageYSection", 3, argv[2] ));
   } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcFileReadIMODextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg3 = (double)(val3);
+  lmrcImageYSection(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageXProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageReadIMODextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageReadIMODextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageReadIMODextendedMRC", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXProjection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageReadIMODextendedMRC", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcImageReadIMODextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageXProjection(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcHeaderReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageYProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderReadIMODextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderReadIMODextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderReadIMODextendedMRC", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYProjection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderReadIMODextendedMRC", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcHeaderReadIMODextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageYProjection(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerReadIMODextendedMRC(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageZProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerReadIMODextendedMRC", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerReadIMODextendedMRC", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerReadIMODextendedMRC", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZProjection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerReadIMODextendedMRC", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcTailerReadIMODextendedMRC(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageZProjection(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageByteSwap(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageXYProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  long arg2 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
-  int result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 2) || (argc > 2)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageByteSwap", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXYProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mrcImageByteSwap", 2, argv[1] ));
-  } 
-  arg2 = (long)(val2);
-  result = (int)mrcImageByteSwap(arg1,arg2);
-  vresult = SWIG_From_int((int)(result));
-  return vresult;
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXYProjection", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageXYProjection(arg1,arg2);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileWrite(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageYZProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileWrite", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYZProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileWrite", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileWrite", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYZProjection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileWrite", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcFileWrite(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageYZProjection(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageWrite(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageZXProjection(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageWrite", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZXProjection", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcImageWrite", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcImageWrite", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZXProjection", 2, argv[1] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageWrite", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcImageWrite(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageZXProjection(arg1,arg2);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcHeaderWrite(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+_wrap_lmrcImageHistgram(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  unsigned long arg2 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  unsigned long val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcHeaderWrite", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcHeaderWrite", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram", 1, argv[0] )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram", 2, argv[1] ));
+  } 
+  arg2 = (unsigned long)(val2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcHeaderWrite", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram", 3, argv[2] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcHeaderWrite", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcHeaderWrite(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageHistgram(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcTailerWrite(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
+_wrap_lmrcImageHistgram2(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  double arg2 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  double val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcTailerWrite", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcTailerWrite", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram2", 1, argv[0] )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageHistgram2", 2, argv[1] ));
+  } 
+  arg2 = (double)(val2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcTailerWrite", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram2", 3, argv[2] )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcTailerWrite", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  result = (mrcStatusType)mrcTailerWrite(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageHistgram2(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcFileWriteLowerResolution(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  long arg4 ;
-  long arg5 ;
+_wrap_lmrcImageHistgram5(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  unsigned long arg2 ;
+  double arg3 ;
+  double arg4 ;
+  mrcImage *arg5 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  long val4 ;
+  unsigned long val2 ;
+  int ecode2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  double val4 ;
   int ecode4 = 0 ;
-  long val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
   
   if ((argc < 5) || (argc > 5)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcFileWriteLowerResolution", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram5", 1, argv[0] )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcFileWriteLowerResolution", 2, argv[1] ));
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram5", 2, argv[1] ));
+  } 
+  arg2 = (unsigned long)(val2);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageHistgram5", 3, argv[2] ));
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "double","lmrcImageHistgram5", 4, argv[3] ));
+  } 
+  arg4 = (double)(val4);
+  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram5", 5, argv[4] )); 
   }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcFileWriteLowerResolution", 3, argv[2] ));
+  arg5 = (mrcImage *)(argp5);
+  lmrcImageHistgram5(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHistgram3(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  unsigned long arg2 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  unsigned long val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcFileWriteLowerResolution", 4, argv[3] ));
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram3", 1, argv[0] )); 
+  }
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram3", 2, argv[1] ));
   } 
-  arg4 = (long)(val4);
-  ecode5 = SWIG_AsVal_long(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "long","mrcFileWriteLowerResolution", 5, argv[4] ));
+  arg2 = (unsigned long)(val2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram3", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageHistgram3(arg1,arg2,arg3);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageHistgram4(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  double arg2 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram4", 1, argv[0] )); 
+  }
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageHistgram4", 2, argv[1] ));
   } 
-  arg5 = (long)(val5);
-  result = (mrcStatusType)mrcFileWriteLowerResolution(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return vresult;
+  arg2 = (double)(val2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram4", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageHistgram4(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageDataGetbyAU(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  double *arg5 = (double *) 0 ;
-  mrcPixelDataType arg6 ;
-  mrcPixelDataHowToGet arg7 ;
+_wrap_lmrcImageHistgram6(int argc, VALUE *argv, VALUE self) {
+  double **arg1 = (double **) 0 ;
+  double arg2 ;
+  double arg3 ;
+  double arg4 ;
+  mrcImage *arg5 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
-  float val3 ;
+  double val3 ;
   int ecode3 = 0 ;
-  float val4 ;
+  double val4 ;
   int ecode4 = 0 ;
   void *argp5 = 0 ;
   int res5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
   
-  if ((argc < 7) || (argc > 7)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataGetbyAU", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram6", 1, argv[0] )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  arg1 = (double **)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageHistgram6", 2, argv[1] ));
   } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  arg2 = (double)(val2);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageHistgram6", 3, argv[2] ));
   } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_double(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataGetbyAU", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "double","lmrcImageHistgram6", 4, argv[3] ));
   } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_double, 0 |  0 );
+  arg4 = (double)(val4);
+  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "double *","mrcImageDataGetbyAU", 5, argv[4] )); 
+    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram6", 5, argv[4] )); 
   }
-  arg5 = (double *)(argp5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcImageDataGetbyAU", 6, argv[5] ));
-  } 
-  arg6 = (mrcPixelDataType)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcImageDataGetbyAU", 7, argv[6] ));
-  } 
-  arg7 = (mrcPixelDataHowToGet)(val7);
-  result = (double)mrcImageDataGetbyAU(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg5 = (mrcImage *)(argp5);
+  lmrcImageHistgram6(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataGet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  double *arg5 = (double *) 0 ;
-  mrcPixelDataType arg6 ;
-  mrcPixelDataHowToGet arg7 ;
+_wrap_lmrcImageInformation(int argc, VALUE *argv, VALUE self) {
+  mrcImageInformation *arg1 = (mrcImageInformation *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImageInformation *","lmrcImageInformation", 1, argv[0] )); 
+  }
+  arg1 = (mrcImageInformation *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageInformation", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageInformation(arg1,arg2);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageCopy(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeRealCoord arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
-  int ecode2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  void *argp5 = 0 ;
-  int res5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
   
-  if ((argc < 7) || (argc > 7)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCopy", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataGet", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_double, 0 |  0 );
-  if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "double *","mrcPixelDataGet", 5, argv[4] )); 
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCopy", 2, argv[1] )); 
   }
-  arg5 = (double *)(argp5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelDataGet", 6, argv[5] ));
-  } 
-  arg6 = (mrcPixelDataType)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelDataGet", 7, argv[6] ));
-  } 
-  arg7 = (mrcPixelDataHowToGet)(val7);
-  result = (double)mrcPixelDataGet(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg2 = (mrcImage *)(argp2);
+  {
+    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeRealCoord,  0 );
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord","lmrcImageCopy", 3, argv[2] )); 
+    }  
+    if (!argp3) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeRealCoord","lmrcImageCopy", 3, argv[2]));
+    } else {
+      arg3 = *((mrcImageParaTypeRealCoord *)(argp3));
+    }
+  }
+  lmrcImageCopy(arg1,arg2,arg3);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelsDataGet(int argc, VALUE *argv, VALUE self) {
-  float *arg1 = (float *) 0 ;
-  mrcImageParaTypeRealCoord *arg2 = (mrcImageParaTypeRealCoord *) 0 ;
-  int arg3 ;
-  mrcImage *arg4 = (mrcImage *) 0 ;
-  mrcPixelDataType arg5 ;
-  mrcPixelDataHowToGet arg6 ;
+_wrap_IsFloatImage(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  char *arg2 = (char *) 0 ;
+  mrcImageParaTypeInteger arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 6) || (argc > 6)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_float, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "float *","mrcPixelsDataGet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFloatImage", 1, argv[0] )); 
   }
-  arg1 = (float *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImageParaTypeRealCoord, 0 |  0 );
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord *","mrcPixelsDataGet", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFloatImage", 2, argv[1] ));
   }
-  arg2 = (mrcImageParaTypeRealCoord *)(argp2);
+  arg2 = (char *)(buf2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","mrcPixelsDataGet", 3, argv[2] ));
-  } 
-  arg3 = (int)(val3);
-  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelsDataGet", 4, argv[3] )); 
-  }
-  arg4 = (mrcImage *)(argp4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelsDataGet", 5, argv[4] ));
-  } 
-  arg5 = (mrcPixelDataType)(val5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelsDataGet", 6, argv[5] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFloatImage", 3, argv[2] ));
   } 
-  arg6 = (mrcPixelDataHowToGet)(val6);
-  mrcPixelsDataGet(arg1,arg2,arg3,arg4,arg5,arg6);
-  return Qnil;
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  result = (int)IsFloatImage(arg1,arg2,arg3);
+  vresult = SWIG_From_int((int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return vresult;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataGetbyMatrix3D(int argc, VALUE *argv, VALUE self) {
+_wrap_IsFloatFT(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  matrix3DParaTypeReal (*arg3)[4] ;
-  mrcPixelDataHowToGet arg4 ;
-  int arg5 ;
+  char *arg2 = (char *) 0 ;
+  mrcImageParaTypeInteger arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetbyMatrix3D", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFloatFT", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetbyMatrix3D", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFloatFT", 2, argv[1] ));
   }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","mrcPixelDataGetbyMatrix3D", 3, argv[2] )); 
-  } 
-  arg3 = (float (*)[4])(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","mrcPixelDataGetbyMatrix3D", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","mrcPixelDataGetbyMatrix3D", 5, argv[4] ));
+  arg2 = (char *)(buf2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFloatFT", 3, argv[2] ));
   } 
-  arg5 = (int)(val5);
-  mrcPixelDataGetbyMatrix3D(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
-  return Qnil;
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  result = (int)IsFloatFT(arg1,arg2,arg3);
+  vresult = SWIG_From_int((int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return vresult;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataGetFloatImage(int argc, VALUE *argv, VALUE self) {
+_wrap_IsImage(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
+  char *arg2 = (char *) 0 ;
   mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  double result;
+  int result;
   VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsImage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsImage", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsImage", 3, argv[2] ));
   } 
   arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatImage", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  result = (double)mrcPixelDataGetFloatImage(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_double((double)(result));
+  result = (int)IsImage(arg1,arg2,arg3);
+  vresult = SWIG_From_int((int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return vresult;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataGetFloatFTRe(int argc, VALUE *argv, VALUE self) {
+_wrap_IsFT(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
+  char *arg2 = (char *) 0 ;
   mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  double result;
+  int result;
   VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatFTRe", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFT", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFT", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFT", 3, argv[2] ));
   } 
   arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTRe", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  result = (double)mrcPixelDataGetFloatFTRe(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_double((double)(result));
+  result = (int)IsFT(arg1,arg2,arg3);
+  vresult = SWIG_From_int((int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return vresult;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataGetFloatFTIm(int argc, VALUE *argv, VALUE self) {
+_wrap_IsFFT(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
+  char *arg2 = (char *) 0 ;
   mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  double result;
+  int result;
   VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataGetFloatFTIm", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFFT", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
+  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFFT", 2, argv[1] ));
+  }
+  arg2 = (char *)(buf2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFFT", 3, argv[2] ));
   } 
   arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataGetFloatFTIm", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  result = (double)mrcPixelDataGetFloatFTIm(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_double((double)(result));
+  result = (int)IsFFT(arg1,arg2,arg3);
+  vresult = SWIG_From_int((int)(result));
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return vresult;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcInfoSet(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcImageInfoSet(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   FILE *arg2 = (FILE *) 0 ;
   FILE *arg3 = (FILE *) 0 ;
-  mrcImageParaTypeInteger arg4 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
-  int val4 ;
+  long val4 ;
   int ecode4 = 0 ;
   
   if ((argc < 4) || (argc > 4)) {
@@ -18242,25 +20736,25 @@ _wrap_mrcInfoSet(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcInfoSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageInfoSet", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","mrcInfoSet", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","mrcImageInfoSet", 2, argv[1] )); 
   }
   arg2 = (FILE *)(argp2);
   res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "FILE *","mrcInfoSet", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "FILE *","mrcImageInfoSet", 3, argv[2] )); 
   }
   arg3 = (FILE *)(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcInfoSet", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageInfoSet", 4, argv[3] ));
   } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  mrcInfoSet(arg1,arg2,arg3,arg4);
+  arg4 = (long)(val4);
+  mrcImageInfoSet(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -18268,68 +20762,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageDataSet(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageDividedByImage(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  mrcImageParaTypeReal arg5 ;
-  float arg6 ;
-  mrcImageDataSetMode arg7 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  float val5 ;
-  int ecode5 = 0 ;
-  float val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
-  if ((argc < 7) || (argc > 7)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSet", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_float(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSet", 5, argv[4] ));
-  } 
-  arg5 = (mrcImageParaTypeReal)(val5);
-  ecode6 = SWIG_AsVal_float(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "float","mrcImageDataSet", 6, argv[5] ));
-  } 
-  arg6 = (float)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcImageDataSetMode","mrcImageDataSet", 7, argv[6] ));
-  } 
-  arg7 = (mrcImageDataSetMode)(val7);
-  mrcImageDataSet(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageDividedByImage(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -18337,180 +20799,131 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageDataSetbyAU(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImagetMapForZero(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  double arg5 ;
-  mrcPixelDataType arg6 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
-  int ecode2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
-  if ((argc < 6) || (argc > 6)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageDataSetbyAU", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageDataSetbyAU", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_double(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcImageDataSetbyAU", 5, argv[4] ));
-  } 
-  arg5 = (double)(val5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcImageDataSetbyAU", 6, argv[5] ));
-  } 
-  arg6 = (mrcPixelDataType)(val6);
-  result = (double)mrcImageDataSetbyAU(arg1,arg2,arg3,arg4,arg5,arg6);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  lmrcImagetMapForZero(arg1,arg2,arg3);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageSN(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  lmrcImageSN(arg1,arg2,arg3);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataSet(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageDividedByReal(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  double arg5 ;
-  mrcPixelDataType arg6 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
   
-  if ((argc < 6) || (argc > 6)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByReal", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcPixelDataSet", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_double(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSet", 5, argv[4] ));
-  } 
-  arg5 = (double)(val5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataType","mrcPixelDataSet", 6, argv[5] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageDividedByReal", 2, argv[1] ));
   } 
-  arg6 = (mrcPixelDataType)(val6);
-  result = (double)mrcPixelDataSet(arg1,arg2,arg3,arg4,arg5,arg6);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg2 = (double)(val2);
+  lmrcImageDividedByReal(arg1,arg2);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataSetFloatImage(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageDividedByRealForOnlyPositive(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
-  double arg5 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByRealForOnlyPositive", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatImage", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  ecode5 = SWIG_AsVal_double(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatImage", 5, argv[4] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageDividedByRealForOnlyPositive", 2, argv[1] ));
   } 
-  arg5 = (double)(val5);
-  mrcPixelDataSetFloatImage(arg1,arg2,arg3,arg4,arg5);
+  arg2 = (double)(val2);
+  lmrcImageDividedByRealForOnlyPositive(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -18518,52 +20931,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataSetFloatFTRe(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageAddedByReal(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
-  double arg5 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatFTRe", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAddedByReal", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTRe", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  ecode5 = SWIG_AsVal_double(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatFTRe", 5, argv[4] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageAddedByReal", 2, argv[1] ));
   } 
-  arg5 = (double)(val5);
-  mrcPixelDataSetFloatFTRe(arg1,arg2,arg3,arg4,arg5);
+  arg2 = (double)(val2);
+  lmrcImageAddedByReal(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -18571,52 +20960,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcPixelDataSetFloatFTIm(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageStdDev(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeInteger arg4 ;
-  double arg5 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
   int ecode4 = 0 ;
-  double val5 ;
-  int ecode5 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcPixelDataSetFloatFTIm", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcPixelDataSetFloatFTIm", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeInteger)(val4);
-  ecode5 = SWIG_AsVal_double(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "double","mrcPixelDataSetFloatFTIm", 5, argv[4] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageStdDev", 4, argv[3] ));
   } 
-  arg5 = (double)(val5);
-  mrcPixelDataSetFloatFTIm(arg1,arg2,arg3,arg4,arg5);
+  arg4 = (long)(val4);
+  lmrcImageStdDev(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -18624,28 +21005,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcStatDataSet(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageStdErr(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg2 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcStatDataSet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcStatDataSet", 2, argv[1] ));
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageStdErr", 4, argv[3] ));
   } 
-  arg2 = (mrcImageParaTypeInteger)(val2);
-  mrcStatDataSet(arg1,arg2);
+  arg4 = (long)(val4);
+  lmrcImageStdErr(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -18653,36 +21050,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageXSection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageAdd(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  double arg3 ;
+  long *arg3 = (long *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXSection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAdd", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXSection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAdd", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageXSection", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  lmrcImageXSection(arg1,arg2,arg3);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_long, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "long *","lmrcImageAdd", 3, argv[2] )); 
+  }
+  arg3 = (long *)(argp3);
+  lmrcImageAdd(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -18690,36 +21087,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageYSection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcSQRImageAdd(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  double arg3 ;
+  long *arg3 = (long *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYSection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcSQRImageAdd", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYSection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcSQRImageAdd", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageYSection", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  lmrcImageYSection(arg1,arg2,arg3);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_long, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "long *","lmrcSQRImageAdd", 3, argv[2] )); 
+  }
+  arg3 = (long *)(argp3);
+  lmrcSQRImageAdd(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -18727,28 +21124,20 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageXProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageSquare(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSquare", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXProjection", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  lmrcImageXProjection(arg1,arg2);
+  lmrcImageSquare(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -18756,28 +21145,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageYProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageRoot(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 2) || (argc > 2)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRoot", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYProjection", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  lmrcImageYProjection(arg1,arg2);
+  ecode2 = SWIG_AsVal_double(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageRoot", 2, argv[1] ));
+  } 
+  arg2 = (double)(val2);
+  lmrcImageRoot(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -18785,7 +21174,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageZProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageAbs(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
@@ -18798,15 +21187,15 @@ _wrap_lmrcImageZProjection(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAbs", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZProjection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAbs", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lmrcImageZProjection(arg1,arg2);
+  lmrcImageAbs(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -18814,28 +21203,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageXYProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageConvolution(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  int arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXYProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageXYProjection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lmrcImageXYProjection(arg1,arg2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcImageConvolution", 4, argv[3] ));
+  } 
+  arg4 = (int)(val4);
+  lmrcImageConvolution(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -18843,28 +21248,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageYZProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageToIntImage(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeInteger arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYZProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageToIntImage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageYZProjection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageToIntImage", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lmrcImageYZProjection(arg1,arg2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcImageToIntImage", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  lmrcImageToIntImage(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -18872,7 +21285,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageZXProjection(int argc, VALUE *argv, VALUE self) {
+_wrap_lfft2d(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
@@ -18885,15 +21298,15 @@ _wrap_lmrcImageZXProjection(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZXProjection", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lfft2d", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageZXProjection", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lfft2d", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lmrcImageZXProjection(arg1,arg2);
+  lfft2d(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -18901,36 +21314,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHistgram(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  unsigned long arg2 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+_wrap_lmrcImageFFT(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  long arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  unsigned long val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  long val3 ;
+  int ecode3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFT", 1, argv[0] )); 
   }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram", 2, argv[1] ));
-  } 
-  arg2 = (unsigned long)(val2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram", 3, argv[2] )); 
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFT", 2, argv[1] )); 
   }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImageHistgram(arg1,arg2,arg3);
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_long(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFFT", 3, argv[2] ));
+  } 
+  arg3 = (long)(val3);
+  lmrcImageFFT(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -18938,89 +21351,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHistgram2(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  double arg2 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+_wrap_lmrcImageFFTFirstDimensionOnly(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  long arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  long val3 ;
+  int ecode3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram2", 1, argv[0] )); 
-  }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageHistgram2", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram2", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImageHistgram2(arg1,arg2,arg3);
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageHistgram5(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  unsigned long arg2 ;
-  double arg3 ;
-  double arg4 ;
-  mrcImage *arg5 = (mrcImage *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  unsigned long val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
-  int ecode4 = 0 ;
-  void *argp5 = 0 ;
-  int res5 = 0 ;
-  
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTFirstDimensionOnly", 1, argv[0] )); 
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram5", 1, argv[0] )); 
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTFirstDimensionOnly", 2, argv[1] )); 
   }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram5", 2, argv[1] ));
-  } 
-  arg2 = (unsigned long)(val2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_long(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageHistgram5", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  ecode4 = SWIG_AsVal_double(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "double","lmrcImageHistgram5", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFFTFirstDimensionOnly", 3, argv[2] ));
   } 
-  arg4 = (double)(val4);
-  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram5", 5, argv[4] )); 
-  }
-  arg5 = (mrcImage *)(argp5);
-  lmrcImageHistgram5(arg1,arg2,arg3,arg4,arg5);
+  arg3 = (long)(val3);
+  lmrcImageFFTFirstDimensionOnly(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -19028,36 +21388,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHistgram3(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  unsigned long arg2 ;
+_wrap_lmrcFFTFGconj(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  unsigned long val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram3", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 1, argv[0] )); 
   }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram3", 2, argv[1] ));
-  } 
-  arg2 = (unsigned long)(val2);
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
   res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram3", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 3, argv[2] )); 
   }
   arg3 = (mrcImage *)(argp3);
-  lmrcImageHistgram3(arg1,arg2,arg3);
+  lmrcFFTFGconj(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -19065,36 +21425,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHistgram4(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  double arg2 ;
+_wrap_lmrcFFTFxG(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram4", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 1, argv[0] )); 
   }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageHistgram4", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
   res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram4", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 3, argv[2] )); 
   }
   arg3 = (mrcImage *)(argp3);
-  lmrcImageHistgram4(arg1,arg2,arg3);
+  lmrcFFTFxG(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -19102,52 +21462,65 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHistgram6(int argc, VALUE *argv, VALUE self) {
-  double **arg1 = (double **) 0 ;
-  unsigned long arg2 ;
-  double arg3 ;
-  double arg4 ;
-  mrcImage *arg5 = (mrcImage *) 0 ;
+_wrap_lmrcImageCorrelation(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  unsigned long val2 ;
-  int ecode2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  double val4 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
   int ecode4 = 0 ;
-  void *argp5 = 0 ;
-  int res5 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_p_double, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double **","lmrcImageHistgram6", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 1, argv[0] )); 
   }
-  arg1 = (double **)(argp1);
-  ecode2 = SWIG_AsVal_unsigned_SS_long(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "unsigned long","lmrcImageHistgram6", 2, argv[1] ));
-  } 
-  arg2 = (unsigned long)(val2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageHistgram6", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  ecode4 = SWIG_AsVal_double(argv[3], &val4);
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 3, argv[2] )); 
+  }
+  arg3 = (mrcImage *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "double","lmrcImageHistgram6", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCorrelation", 4, argv[3] ));
   } 
-  arg4 = (double)(val4);
-  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHistgram6", 5, argv[4] )); 
+  arg4 = (long)(val4);
+  lmrcImageCorrelation(arg1,arg2,arg3,arg4);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageCorrelationModePrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  arg5 = (mrcImage *)(argp5);
-  lmrcImageHistgram6(arg1,arg2,arg3,arg4,arg5);
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageCorrelationModePrint", 1, argv[0] )); 
+  }
+  arg1 = (FILE *)(argp1);
+  lmrcImageCorrelationModePrint(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -19155,28 +21528,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageInformation(int argc, VALUE *argv, VALUE self) {
-  mrcImageInformation *arg1 = (mrcImageInformation *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
+_wrap_lmrcImageFFTCenterChange(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 2) || (argc > 2)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImageInformation, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImageInformation *","lmrcImageInformation", 1, argv[0] )); 
-  }
-  arg1 = (mrcImageInformation *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageInformation", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTCenterChange", 1, argv[0] )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  lmrcImageInformation(arg1,arg2);
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","lmrcImageFFTCenterChange", 2, argv[1] ));
+  } 
+  arg2 = (int)(val2);
+  lmrcImageFFTCenterChange(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -19184,15 +21557,15 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCopy(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImagePattersonFunctionCalc(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeRealCoord arg3 ;
+  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  void *argp3 ;
+  void *argp3 = 0 ;
   int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
@@ -19200,26 +21573,20 @@ _wrap_lmrcImageCopy(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCopy", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCopy", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  {
-    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeRealCoord,  0 );
-    if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord","lmrcImageCopy", 3, argv[2] )); 
-    }  
-    if (!argp3) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeRealCoord","lmrcImageCopy", 3, argv[2]));
-    } else {
-      arg3 = *((mrcImageParaTypeRealCoord *)(argp3));
-    }
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 3, argv[2] )); 
   }
-  lmrcImageCopy(arg1,arg2,arg3);
+  arg3 = (mrcImage *)(argp3);
+  lmrcImagePattersonFunctionCalc(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -19227,671 +21594,685 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_IsFloatImage(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+_wrap_lmrcImagePattersonFunctionPrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  int arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  int result;
-  VALUE vresult = Qnil;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFloatImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImagePattersonFunctionPrint", 1, argv[0] )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  arg1 = (FILE *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFloatImage", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionPrint", 2, argv[1] )); 
   }
-  arg2 = (char *)(buf2);
+  arg2 = (mrcImage *)(argp2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFloatImage", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImagePattersonFunctionPrint", 3, argv[2] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  result = (int)IsFloatImage(arg1,arg2,arg3);
-  vresult = SWIG_From_int((int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  return vresult;
+  arg3 = (int)(val3);
+  lmrcImagePattersonFunctionPrint(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_IsFloatFT(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+_wrap_lmrcImageGuinierFunctionPrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  int arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   int val3 ;
   int ecode3 = 0 ;
-  int result;
-  VALUE vresult = Qnil;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFloatFT", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageGuinierFunctionPrint", 1, argv[0] )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  arg1 = (FILE *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFloatFT", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageGuinierFunctionPrint", 2, argv[1] )); 
   }
-  arg2 = (char *)(buf2);
+  arg2 = (mrcImage *)(argp2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFloatFT", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageGuinierFunctionPrint", 3, argv[2] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  result = (int)IsFloatFT(arg1,arg2,arg3);
-  vresult = SWIG_From_int((int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  return vresult;
+  arg3 = (int)(val3);
+  lmrcImageGuinierFunctionPrint(arg1,arg2,arg3);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_IsImage(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCorrelationWithCTFCompensation(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  char *arg2 = (char *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  ctfInfo *arg3 = (ctfInfo *) 0 ;
+  mrcImage *arg4 = (mrcImage *) 0 ;
+  ctfInfo *arg5 = (ctfInfo *) 0 ;
+  long arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  void *argp5 = 0 ;
+  int res5 = 0 ;
+  long val6 ;
+  int ecode6 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 6) || (argc > 6)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsImage", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 2, argv[1] )); 
   }
-  arg2 = (char *)(buf2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsImage", 3, argv[2] ));
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCorrelationWithCTFCompensation", 3, argv[2] )); 
+  }
+  arg3 = (ctfInfo *)(argp3);
+  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 4, argv[3] )); 
+  }
+  arg4 = (mrcImage *)(argp4);
+  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_ctfInfo, 0 |  0 );
+  if (!SWIG_IsOK(res5)) {
+    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCorrelationWithCTFCompensation", 5, argv[4] )); 
+  }
+  arg5 = (ctfInfo *)(argp5);
+  ecode6 = SWIG_AsVal_long(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "long","lmrcImageCorrelationWithCTFCompensation", 6, argv[5] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  result = (int)IsImage(arg1,arg2,arg3);
-  vresult = SWIG_From_int((int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  return vresult;
+  arg6 = (long)(val6);
+  lmrcImageCorrelationWithCTFCompensation(arg1,arg2,arg3,arg4,arg5,arg6);
+  return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_IsFT(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_mrcError(int argc, VALUE *argv, VALUE self) {
+  char *arg1 = (char *) 0 ;
   char *arg2 = (char *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
+  char *arg3 = (char *) 0 ;
+  mrcStatusType arg4 ;
+  int res1 ;
+  char *buf1 = 0 ;
+  int alloc1 = 0 ;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int result;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  unsigned int val4 ;
+  int ecode4 = 0 ;
+  mrcStatusType result;
   VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFT", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char *","mrcError", 1, argv[0] ));
   }
-  arg1 = (mrcImage *)(argp1);
+  arg1 = (char *)(buf1);
   res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFT", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcError", 2, argv[1] ));
   }
   arg2 = (char *)(buf2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFT", 3, argv[2] ));
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcError", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_unsigned_SS_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcStatusType","mrcError", 4, argv[3] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  result = (int)IsFT(arg1,arg2,arg3);
-  vresult = SWIG_From_int((int)(result));
+  arg4 = (mrcStatusType)(val4);
+  result = (mrcStatusType)mrcError(arg1,arg2,arg3,arg4);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return vresult;
 fail:
+  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_IsFFT(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_mrcErrorMsg(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
   char *arg2 = (char *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+  char *arg3 = (char *) 0 ;
+  char *arg4 = (char *) 0 ;
+  mrcStatusType arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int res2 ;
   char *buf2 = 0 ;
   int alloc2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int result;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  int res4 ;
+  char *buf4 = 0 ;
+  int alloc4 = 0 ;
+  unsigned int val5 ;
+  int ecode5 = 0 ;
+  mrcStatusType result;
   VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","IsFFT", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcErrorMsg", 1, argv[0] )); 
   }
-  arg1 = (mrcImage *)(argp1);
+  arg1 = (FILE *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","IsFFT", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 2, argv[1] ));
   }
   arg2 = (char *)(buf2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","IsFFT", 3, argv[2] ));
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 4, argv[3] ));
+  }
+  arg4 = (char *)(buf4);
+  ecode5 = SWIG_AsVal_unsigned_SS_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcStatusType","mrcErrorMsg", 5, argv[4] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  result = (int)IsFFT(arg1,arg2,arg3);
-  vresult = SWIG_From_int((int)(result));
+  arg5 = (mrcStatusType)(val5);
+  result = (mrcStatusType)mrcErrorMsg(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return vresult;
 fail:
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageInfoSet(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoXAxisMag(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  FILE *arg2 = (FILE *) 0 ;
-  FILE *arg3 = (FILE *) 0 ;
-  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageInfoSet", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_FILE, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","mrcImageInfoSet", 2, argv[1] )); 
-  }
-  arg2 = (FILE *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_FILE, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "FILE *","mrcImageInfoSet", 3, argv[2] )); 
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoXAxisMag", 1, argv[0] )); 
   }
-  arg3 = (FILE *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageInfoSet", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  mrcImageInfoSet(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (mrcImage *)(argp1);
+  result = (floatVector *)lmrcFSInfoXAxisMag(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageDividedByImage(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoXAxisPhase(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoXAxisPhase", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByImage", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImageDividedByImage(arg1,arg2,arg3);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoXAxisPhase(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImagetMapForZero(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoYAxisMag(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoYAxisMag", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagetMapForZero", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImagetMapForZero(arg1,arg2,arg3);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoYAxisMag(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSN(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoYAxisPhase(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoYAxisPhase", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSN", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImageSN(arg1,arg2,arg3);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoYAxisPhase(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageDividedByReal(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistribution(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByReal", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistribution", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageDividedByReal", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
-  lmrcImageDividedByReal(arg1,arg2);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoScatteringAngularDistribution(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageDividedByRealForOnlyPositive(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionAverage(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageDividedByRealForOnlyPositive", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionAverage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageDividedByRealForOnlyPositive", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
-  lmrcImageDividedByRealForOnlyPositive(arg1,arg2);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoScatteringAngularDistributionAverage(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageAddedByReal(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionSD(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAddedByReal", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionSD", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageAddedByReal", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
-  lmrcImageAddedByReal(arg1,arg2);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoScatteringAngularDistributionSD(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageStdDev(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoSpacing(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
-  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  floatVector *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoSpacing", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdDev", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageStdDev", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  lmrcImageStdDev(arg1,arg2,arg3,arg4);
-  return Qnil;
+  result = (floatVector *)lmrcFSInfoSpacing(arg1);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageStdErr(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionDivisionAverage(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
-  long arg4 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  int arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
+  floatVector **result = 0 ;
+  VALUE vresult = Qnil;
   
   if ((argc < 4) || (argc > 4)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStdErr", 3, argv[2] )); 
-  }
-  arg3 = (mrcImage *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageStdErr", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  lmrcImageStdErr(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg4 = (int)(val4);
+  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionAverage(arg1,arg2,arg3,arg4);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageAdd(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionDivisionSD(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  long *arg3 = (long *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  int arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  floatVector **result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAdd", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionSD", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAdd", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_long, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "long *","lmrcImageAdd", 3, argv[2] )); 
-  }
-  arg3 = (long *)(argp3);
-  lmrcImageAdd(arg1,arg2,arg3);
-  return Qnil;
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSD", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionSD", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionSD", 4, argv[3] ));
+  } 
+  arg4 = (int)(val4);
+  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionSD(arg1,arg2,arg3,arg4);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcSQRImageAdd(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  long *arg3 = (long *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  int arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  floatVector **result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcSQRImageAdd", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcSQRImageAdd", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_long, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "long *","lmrcSQRImageAdd", 3, argv[2] )); 
-  }
-  arg3 = (long *)(argp3);
-  lmrcSQRImageAdd(arg1,arg2,arg3);
-  return Qnil;
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSquare(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcFSInfoScatteringAngularDistributionDivisionSDDelR(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg2 ;
+  mrcImageParaTypeInteger arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  int arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  floatVector **result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSquare", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  lmrcImageSquare(arg1);
-  return Qnil;
+  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 2, argv[1] ));
+  } 
+  arg2 = (mrcImageParaTypeReal)(val2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionSDDelR(arg1,arg2,arg3,arg4,arg5);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRoot(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCheckSameSize(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  double arg2 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 2) || (argc > 2)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRoot", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckSameSize", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","lmrcImageRoot", 2, argv[1] ));
-  } 
-  arg2 = (double)(val2);
-  lmrcImageRoot(arg1,arg2);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckSameSize", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  lmrcImageCheckSameSize(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -19899,7 +22280,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageAbs(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCheckFFT(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
   void *argp1 = 0 ;
@@ -19912,15 +22293,15 @@ _wrap_lmrcImageAbs(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAbs", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckFFT", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageAbs", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckFFT", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lmrcImageAbs(arg1,arg2);
+  lmrcImageCheckFFT(arg1,arg2);
   return Qnil;
 fail:
   return Qnil;
@@ -19928,18 +22309,39 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageConvolution(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageSmoothingModeInfo(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageSmoothingModeInfo", 1, argv[0] )); 
+  }
+  arg1 = (FILE *)(argp1);
+  lmrcImageSmoothingModeInfo(arg1);
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageSmoothing(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
-  int arg4 ;
+  lmrcImageSmoothingInfo *arg3 = (lmrcImageSmoothingInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
-  int val4 ;
+  long val4 ;
   int ecode4 = 0 ;
   
   if ((argc < 4) || (argc > 4)) {
@@ -19947,25 +22349,25 @@ _wrap_lmrcImageConvolution(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSmoothing", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSmoothing", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageConvolution", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageSmoothingInfo *","lmrcImageSmoothing", 3, argv[2] )); 
   }
-  arg3 = (mrcImage *)(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  arg3 = (lmrcImageSmoothingInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcImageConvolution", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageSmoothing", 4, argv[3] ));
   } 
-  arg4 = (int)(val4);
-  lmrcImageConvolution(arg1,arg2,arg3,arg4);
+  arg4 = (long)(val4);
+  lmrcImageSmoothing(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -19973,36 +22375,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageToIntImage(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCVE(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+  lmrcImageCVEInfo *arg3 = (lmrcImageCVEInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageToIntImage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCVE", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageToIntImage", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCVE", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcImageToIntImage", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  lmrcImageToIntImage(arg1,arg2,arg3);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageCVEInfo *","lmrcImageCVE", 3, argv[2] )); 
+  }
+  arg3 = (lmrcImageCVEInfo *)(argp3);
+  lmrcImageCVE(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -20010,28 +22412,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lfft2d(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageTfunction(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
+  lmrcImageTfunctionInfo *arg3 = (lmrcImageTfunctionInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lfft2d", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageTfunction", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lfft2d", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageTfunction", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  lfft2d(arg1,arg2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageTfunctionInfo *","lmrcImageTfunction", 3, argv[2] )); 
+  }
+  arg3 = (lmrcImageTfunctionInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageTfunction", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  lmrcImageTfunction(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20039,36 +22457,20 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFFT(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  long arg3 ;
+_wrap_lmrcImageHighlightingInfoPrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  long val3 ;
-  int ecode3 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFT", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFT", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageHighlightingInfoPrint", 1, argv[0] )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_long(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFFT", 3, argv[2] ));
-  } 
-  arg3 = (long)(val3);
-  lmrcImageFFT(arg1,arg2,arg3);
+  arg1 = (FILE *)(argp1);
+  lmrcImageHighlightingInfoPrint(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -20076,36 +22478,36 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFFTFirstDimensionOnly(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageHighlighting(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  long arg3 ;
+  lmrcImageHighlightInfo *arg3 = (lmrcImageHighlightInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  long val3 ;
-  int ecode3 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTFirstDimensionOnly", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighlighting", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTFirstDimensionOnly", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighlighting", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_long(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFFTFirstDimensionOnly", 3, argv[2] ));
-  } 
-  arg3 = (long)(val3);
-  lmrcImageFFTFirstDimensionOnly(arg1,arg2,arg3);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageHighlightInfo *","lmrcImageHighlighting", 3, argv[2] )); 
+  }
+  arg3 = (lmrcImageHighlightInfo *)(argp3);
+  lmrcImageHighlighting(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -20113,36 +22515,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFFTFGconj(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageLowPassFilter(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+  lmrcImageLowPassFilterInfo *arg3 = (lmrcImageLowPassFilterInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageLowPassFilter", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageLowPassFilter", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFGconj", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageLowPassFilterInfo *","lmrcImageLowPassFilter", 3, argv[2] )); 
   }
-  arg3 = (mrcImage *)(argp3);
-  lmrcFFTFGconj(arg1,arg2,arg3);
+  arg3 = (lmrcImageLowPassFilterInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageLowPassFilter", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  lmrcImageLowPassFilter(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20150,36 +22560,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFFTFxG(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageHighPassFilter(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+  lmrcImageHighPassFilterInfo *arg3 = (lmrcImageHighPassFilterInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighPassFilter", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighPassFilter", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcFFTFxG", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageHighPassFilterInfo *","lmrcImageHighPassFilter", 3, argv[2] )); 
   }
-  arg3 = (mrcImage *)(argp3);
-  lmrcFFTFxG(arg1,arg2,arg3);
+  arg3 = (lmrcImageHighPassFilterInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageHighPassFilter", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  lmrcImageHighPassFilter(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20187,10 +22605,10 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCorrelation(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageBandPassFilter(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+  lmrcImageBandPassFilterInfo *arg3 = (lmrcImageBandPassFilterInfo *) 0 ;
   long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -20206,46 +22624,25 @@ _wrap_lmrcImageCorrelation(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageBandPassFilter", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageBandPassFilter", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelation", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageBandPassFilterInfo *","lmrcImageBandPassFilter", 3, argv[2] )); 
   }
-  arg3 = (mrcImage *)(argp3);
+  arg3 = (lmrcImageBandPassFilterInfo *)(argp3);
   ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCorrelation", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageBandPassFilter", 4, argv[3] ));
   } 
   arg4 = (long)(val4);
-  lmrcImageCorrelation(arg1,arg2,arg3,arg4);
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageCorrelationModePrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageCorrelationModePrint", 1, argv[0] )); 
-  }
-  arg1 = (FILE *)(argp1);
-  lmrcImageCorrelationModePrint(arg1);
+  lmrcImageBandPassFilter(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20253,28 +22650,50 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFFTCenterChange(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageShrink(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  int arg2 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeIntegerCoord arg3 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 ;
+  int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageFFTCenterChange", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShrink", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","lmrcImageFFTCenterChange", 2, argv[1] ));
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShrink", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  {
+    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeIntegerCoord,  0 );
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeIntegerCoord","lmrcImageShrink", 3, argv[2] )); 
+    }  
+    if (!argp3) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeIntegerCoord","lmrcImageShrink", 3, argv[2]));
+    } else {
+      arg3 = *((mrcImageParaTypeIntegerCoord *)(argp3));
+    }
+  }
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageShrink", 4, argv[3] ));
   } 
-  arg2 = (int)(val2);
-  lmrcImageFFTCenterChange(arg1,arg2);
+  arg4 = (long)(val4);
+  lmrcImageShrink(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20282,36 +22701,50 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImagePattersonFunctionCalc(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageShift(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImage *arg3 = (mrcImage *) 0 ;
+  mrcImageParaTypeRealCoord arg3 ;
+  mrcPixelDataHowToGet arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  void *argp3 = 0 ;
+  void *argp3 ;
   int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShift", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShift", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionCalc", 3, argv[2] )); 
+  {
+    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeRealCoord,  0 );
+    if (!SWIG_IsOK(res3)) {
+      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord","lmrcImageShift", 3, argv[2] )); 
+    }  
+    if (!argp3) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeRealCoord","lmrcImageShift", 3, argv[2]));
+    } else {
+      arg3 = *((mrcImageParaTypeRealCoord *)(argp3));
+    }
   }
-  arg3 = (mrcImage *)(argp3);
-  lmrcImagePattersonFunctionCalc(arg1,arg2,arg3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageShift", 4, argv[3] ));
+  } 
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  lmrcImageShift(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -20319,8 +22752,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImagePattersonFunctionPrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_lmrcImageShiftFollowingGC(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
   int arg3 ;
   void *argp1 = 0 ;
@@ -20333,22 +22766,22 @@ _wrap_lmrcImagePattersonFunctionPrint(int argc, VALUE *argv, VALUE self) {
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImagePattersonFunctionPrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShiftFollowingGC", 1, argv[0] )); 
   }
-  arg1 = (FILE *)(argp1);
+  arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePattersonFunctionPrint", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShiftFollowingGC", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImagePattersonFunctionPrint", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageShiftFollowingGC", 3, argv[2] ));
   } 
   arg3 = (int)(val3);
-  lmrcImagePattersonFunctionPrint(arg1,arg2,arg3);
+  lmrcImageShiftFollowingGC(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
@@ -20356,10 +22789,10 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageGuinierFunctionPrint(int argc, VALUE *argv, VALUE self) {
+_wrap_mrcInfoPrint(int argc, VALUE *argv, VALUE self) {
   FILE *arg1 = (FILE *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  int arg3 ;
+  mrcImageParaTypeInteger arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -20372,81 +22805,51 @@ _wrap_lmrcImageGuinierFunctionPrint(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageGuinierFunctionPrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcInfoPrint", 1, argv[0] )); 
   }
   arg1 = (FILE *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageGuinierFunctionPrint", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcInfoPrint", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
   ecode3 = SWIG_AsVal_int(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageGuinierFunctionPrint", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcInfoPrint", 3, argv[2] ));
   } 
-  arg3 = (int)(val3);
-  lmrcImageGuinierFunctionPrint(arg1,arg2,arg3);
+  arg3 = (mrcImageParaTypeInteger)(val3);
+  mrcInfoPrint(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
 }
 
 
+static swig_class SwigClassLmrcImageMultiCTFCompensationInfo;
+
 SWIGINTERN VALUE
-_wrap_lmrcImageCorrelationWithCTFCompensation(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  ctfInfo *arg3 = (ctfInfo *) 0 ;
-  mrcImage *arg4 = (mrcImage *) 0 ;
-  ctfInfo *arg5 = (ctfInfo *) 0 ;
-  long arg6 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
-  void *argp5 = 0 ;
-  int res5 = 0 ;
-  long val6 ;
-  int ecode6 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 6) || (argc > 6)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCorrelationWithCTFCompensation", 3, argv[2] )); 
-  }
-  arg3 = (ctfInfo *)(argp3);
-  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCorrelationWithCTFCompensation", 4, argv[3] )); 
-  }
-  arg4 = (mrcImage *)(argp4);
-  res5 = SWIG_ConvertPtr(argv[4], &argp5,SWIGTYPE_p_ctfInfo, 0 |  0 );
-  if (!SWIG_IsOK(res5)) {
-    SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCorrelationWithCTFCompensation", 5, argv[4] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","maxiteration", 1, self )); 
   }
-  arg5 = (ctfInfo *)(argp5);
-  ecode6 = SWIG_AsVal_long(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "long","lmrcImageCorrelationWithCTFCompensation", 6, argv[5] ));
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","maxiteration", 2, argv[0] ));
   } 
-  arg6 = (long)(val6);
-  lmrcImageCorrelationWithCTFCompensation(arg1,arg2,arg3,arg4,arg5,arg6);
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->maxiteration = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -20454,169 +22857,129 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcError(int argc, VALUE *argv, VALUE self) {
-  char *arg1 = (char *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  mrcStatusType arg4 ;
-  int res1 ;
-  char *buf1 = 0 ;
-  int alloc1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  unsigned int val4 ;
-  int ecode4 = 0 ;
-  mrcStatusType result;
+_wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long result;
   VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_AsCharPtrAndSize(argv[0], &buf1, NULL, &alloc1);
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "char *","mrcError", 1, argv[0] ));
-  }
-  arg1 = (char *)(buf1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcError", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcError", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","maxiteration", 1, self )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_unsigned_SS_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcStatusType","mrcError", 4, argv[3] ));
-  } 
-  arg4 = (mrcStatusType)(val4);
-  result = (mrcStatusType)mrcError(arg1,arg2,arg3,arg4);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (long) ((arg1)->maxiteration);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
-  if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcErrorMsg(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
-  char *arg2 = (char *) 0 ;
-  char *arg3 = (char *) 0 ;
-  char *arg4 = (char *) 0 ;
-  mrcStatusType arg5 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_okrms_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  int res4 ;
-  char *buf4 = 0 ;
-  int alloc4 = 0 ;
-  unsigned int val5 ;
-  int ecode5 = 0 ;
-  mrcStatusType result;
-  VALUE vresult = Qnil;
+  double val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcErrorMsg", 1, argv[0] )); 
-  }
-  arg1 = (FILE *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[1], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 2, argv[1] ));
-  }
-  arg2 = (char *)(buf2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 3, argv[2] ));
-  }
-  arg3 = (char *)(buf3);
-  res4 = SWIG_AsCharPtrAndSize(argv[3], &buf4, NULL, &alloc4);
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "char *","mrcErrorMsg", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","okrms", 1, self )); 
   }
-  arg4 = (char *)(buf4);
-  ecode5 = SWIG_AsVal_unsigned_SS_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcStatusType","mrcErrorMsg", 5, argv[4] ));
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","okrms", 2, argv[0] ));
   } 
-  arg5 = (mrcStatusType)(val5);
-  result = (mrcStatusType)mrcErrorMsg(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_From_unsigned_SS_int((unsigned int)(result));
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->okrms = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageMultiCTFCompensationInfo_okrms_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","okrms", 1, self )); 
+  }
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (double) ((arg1)->okrms);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  if (alloc4 == SWIG_NEWOBJ) free((char*)buf4);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoXAxisMag(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_diversefactor_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
-  VALUE vresult = Qnil;
+  long val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoXAxisMag", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","diversefactor", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoXAxisMag(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
-  return vresult;
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","diversefactor", 2, argv[0] ));
+  } 
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->diversefactor = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoXAxisPhase(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_diversefactor_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
+  long result;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoXAxisPhase", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","diversefactor", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoXAxisPhase(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (long) ((arg1)->diversefactor);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -20624,47 +22987,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoYAxisMag(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_z_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
-  VALUE vresult = Qnil;
+  double val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoYAxisMag", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","z", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoYAxisMag(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
-  return vresult;
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","z", 2, argv[0] ));
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->z = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoYAxisPhase(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_z_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
+  double result;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoYAxisPhase", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","z", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoYAxisPhase(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (double) ((arg1)->z);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -20672,47 +23040,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistribution(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_nhist_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
-  VALUE vresult = Qnil;
+  long val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistribution", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","nhist", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoScatteringAngularDistribution(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
-  return vresult;
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","nhist", 2, argv[0] ));
+  } 
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->nhist = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionAverage(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_nhist_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
+  long result;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionAverage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","nhist", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoScatteringAngularDistributionAverage(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (long) ((arg1)->nhist);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -20720,47 +23093,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionSD(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_logfile_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  FILE *arg2 = (FILE *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionSD", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","logfile", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoScatteringAngularDistributionSD(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
-  return vresult;
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FILE, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","logfile", 2, argv[0] )); 
+  }
+  arg2 = (FILE *)(argp2);
+  if (arg1) (arg1)->logfile = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoSpacing(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_logfile_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  floatVector *result = 0 ;
+  FILE *result = 0 ;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoSpacing", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","logfile", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  result = (floatVector *)lmrcFSInfoSpacing(arg1);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (FILE *) ((arg1)->logfile);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -20768,95 +23146,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionDivisionAverage(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  int arg4 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_solventMode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  lmrcImageMultiCTFCompensationSolventFlatteningMode arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  int val2 ;
   int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  floatVector **result = 0 ;
-  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","solventMode", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionAverage", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationSolventFlatteningMode","solventMode", 2, argv[0] ));
   } 
-  arg4 = (int)(val4);
-  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionAverage(arg1,arg2,arg3,arg4);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
-  return vresult;
+  arg2 = (lmrcImageMultiCTFCompensationSolventFlatteningMode)(val2);
+  if (arg1) (arg1)->solventMode = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionDivisionSD(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  int arg4 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_solventMode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
-  int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  floatVector **result = 0 ;
+  lmrcImageMultiCTFCompensationSolventFlatteningMode result;
   VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionSD", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","solventMode", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSD", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionSD", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionSD", 4, argv[3] ));
-  } 
-  arg4 = (int)(val4);
-  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionSD(arg1,arg2,arg3,arg4);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (lmrcImageMultiCTFCompensationSolventFlatteningMode) ((arg1)->solventMode);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -20864,140 +23199,110 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  int arg5 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_definedSTD_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+  float arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   float val2 ;
   int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
-  floatVector **result = 0 ;
-  VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","definedSTD", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR", 5, argv[4] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","definedSTD", 2, argv[0] ));
   } 
-  arg5 = (int)(val5);
-  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionAverageDelR(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
-  return vresult;
+  arg2 = (float)(val2);
+  if (arg1) (arg1)->definedSTD = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcFSInfoScatteringAngularDistributionDivisionSDDelR(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg2 ;
-  mrcImageParaTypeInteger arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  int arg5 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_definedSTD_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
-  int ecode2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
-  floatVector **result = 0 ;
+  float result;
   VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","definedSTD", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[1], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 2, argv[1] ));
-  } 
-  arg2 = (mrcImageParaTypeReal)(val2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcFSInfoScatteringAngularDistributionDivisionSDDelR", 5, argv[4] ));
-  } 
-  arg5 = (int)(val5);
-  result = (floatVector **)lmrcFSInfoScatteringAngularDistributionDivisionSDDelR(arg1,arg2,arg3,arg4,arg5);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_floatVector, 0 |  0 );
+  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  result = (float) ((arg1)->definedSTD);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageCheckSameSize(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageMultiCTFCompensationInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageMultiCTFCompensationInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageMultiCTFCompensationInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageMultiCTFCompensationInfo *)calloc(1, sizeof(struct lmrcImageMultiCTFCompensationInfo));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_lmrcImageMultiCTFCompensationInfo(struct lmrcImageMultiCTFCompensationInfo *arg1) {
+    free((char *) arg1);
+}
+
+SWIGINTERN VALUE
+_wrap_lmrcImageMultiCTFCompensationInfoInit(int argc, VALUE *argv, VALUE self) {
+  lmrcImageMultiCTFCompensationInfo *arg1 = (lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckSameSize", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckSameSize", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo *","lmrcImageMultiCTFCompensationInfoInit", 1, argv[0] )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  lmrcImageCheckSameSize(arg1,arg2);
+  arg1 = (lmrcImageMultiCTFCompensationInfo *)(argp1);
+  lmrcImageMultiCTFCompensationInfoInit(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -21005,28 +23310,20 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCheckFFT(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
+_wrap_lmrcImageMultiCTFCompensationInfoSet(int argc, VALUE *argv, VALUE self) {
+  lmrcImageMultiCTFCompensationInfo *arg1 = (lmrcImageMultiCTFCompensationInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckFFT", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCheckFFT", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo *","lmrcImageMultiCTFCompensationInfoSet", 1, argv[0] )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  lmrcImageCheckFFT(arg1,arg2);
+  arg1 = (lmrcImageMultiCTFCompensationInfo *)(argp1);
+  lmrcImageMultiCTFCompensationInfoSet(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -21034,20 +23331,66 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothingModeInfo(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_lmrcImageMultiCTFCompensation(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  ctfInfo *arg3 = (ctfInfo *) 0 ;
+  long arg4 ;
+  lmrcImageMultiCTFCompensationInfo arg5 ;
+  long arg6 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
+  void *argp5 ;
+  int res5 = 0 ;
+  long val6 ;
+  int ecode6 = 0 ;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 6) || (argc > 6)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageSmoothingModeInfo", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMultiCTFCompensation", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMultiCTFCompensation", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageMultiCTFCompensation", 3, argv[2] )); 
   }
-  arg1 = (FILE *)(argp1);
-  lmrcImageSmoothingModeInfo(arg1);
+  arg3 = (ctfInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageMultiCTFCompensation", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  {
+    res5 = SWIG_ConvertPtr(argv[4], &argp5, SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo,  0 );
+    if (!SWIG_IsOK(res5)) {
+      SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo","lmrcImageMultiCTFCompensation", 5, argv[4] )); 
+    }  
+    if (!argp5) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "lmrcImageMultiCTFCompensationInfo","lmrcImageMultiCTFCompensation", 5, argv[4]));
+    } else {
+      arg5 = *((lmrcImageMultiCTFCompensationInfo *)(argp5));
+    }
+  }
+  ecode6 = SWIG_AsVal_long(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "long","lmrcImageMultiCTFCompensation", 6, argv[5] ));
+  } 
+  arg6 = (long)(val6);
+  lmrcImageMultiCTFCompensation(arg1,arg2,arg3,arg4,arg5,arg6);
   return Qnil;
 fail:
   return Qnil;
@@ -21055,10 +23398,10 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageSmoothing(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCTFObservation(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageSmoothingInfo *arg3 = (lmrcImageSmoothingInfo *) 0 ;
+  ctfInfo *arg3 = (ctfInfo *) 0 ;
   long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21074,25 +23417,25 @@ _wrap_lmrcImageSmoothing(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSmoothing", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFObservation", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageSmoothing", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFObservation", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageSmoothingInfo, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageSmoothingInfo *","lmrcImageSmoothing", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCTFObservation", 3, argv[2] )); 
   }
-  arg3 = (lmrcImageSmoothingInfo *)(argp3);
+  arg3 = (ctfInfo *)(argp3);
   ecode4 = SWIG_AsVal_long(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageSmoothing", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCTFObservation", 4, argv[3] ));
   } 
   arg4 = (long)(val4);
-  lmrcImageSmoothing(arg1,arg2,arg3,arg4);
+  lmrcImageCTFObservation(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -21100,36 +23443,44 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCVE(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImagesCTFObservation(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageCVEInfo *arg3 = (lmrcImageCVEInfo *) 0 ;
+  ctfInfo *arg3 = (ctfInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
   void *argp3 = 0 ;
   int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCVE", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagesCTFObservation", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCVE", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagesCTFObservation", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageCVEInfo, 0 |  0 );
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
   if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageCVEInfo *","lmrcImageCVE", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImagesCTFObservation", 3, argv[2] )); 
   }
-  arg3 = (lmrcImageCVEInfo *)(argp3);
-  lmrcImageCVE(arg1,arg2,arg3);
+  arg3 = (ctfInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImagesCTFObservation", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  lmrcImagesCTFObservation(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -21137,65 +23488,67 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageTfunction(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageCTFCompensation(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageTfunctionInfo *arg3 = (lmrcImageTfunctionInfo *) 0 ;
-  long arg4 ;
+  ctfInfo *arg2 = (ctfInfo *) 0 ;
+  long arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  long val3 ;
+  int ecode3 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageTfunction", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFCompensation", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_ctfInfo, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageTfunction", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageTfunctionInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageTfunctionInfo *","lmrcImageTfunction", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCTFCompensation", 2, argv[1] )); 
   }
-  arg3 = (lmrcImageTfunctionInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageTfunction", 4, argv[3] ));
+  arg2 = (ctfInfo *)(argp2);
+  ecode3 = SWIG_AsVal_long(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageCTFCompensation", 3, argv[2] ));
   } 
-  arg4 = (long)(val4);
-  lmrcImageTfunction(arg1,arg2,arg3,arg4);
+  arg3 = (long)(val3);
+  lmrcImageCTFCompensation(arg1,arg2,arg3);
   return Qnil;
 fail:
   return Qnil;
 }
 
 
+static swig_class SwigClassLmrcImageCTFSNInfo;
+
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlightingInfoPrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_lmrcImageCTFSNInfo_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageHighlightingInfoPrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","mode", 1, self )); 
   }
-  arg1 = (FILE *)(argp1);
-  lmrcImageHighlightingInfoPrint(arg1);
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
+  } 
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->mode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21203,81 +23556,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighlighting(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageHighlightInfo *arg3 = (lmrcImageHighlightInfo *) 0 ;
+_wrap_lmrcImageCTFSNInfo_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighlighting", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighlighting", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageHighlightInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageHighlightInfo *","lmrcImageHighlighting", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","mode", 1, self )); 
   }
-  arg3 = (lmrcImageHighlightInfo *)(argp3);
-  lmrcImageHighlighting(arg1,arg2,arg3);
-  return Qnil;
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  result = (long) ((arg1)->mode);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageLowPassFilter(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageLowPassFilterInfo *arg3 = (lmrcImageLowPassFilterInfo *) 0 ;
-  long arg4 ;
+_wrap_lmrcImageCTFSNInfo_deg1_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageLowPassFilter", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageLowPassFilter", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageLowPassFilterInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageLowPassFilterInfo *","lmrcImageLowPassFilter", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg1", 1, self )); 
   }
-  arg3 = (lmrcImageLowPassFilterInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageLowPassFilter", 4, argv[3] ));
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","deg1", 2, argv[0] ));
   } 
-  arg4 = (long)(val4);
-  lmrcImageLowPassFilter(arg1,arg2,arg3,arg4);
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->deg1 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21285,89 +23609,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageHighPassFilter(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageHighPassFilterInfo *arg3 = (lmrcImageHighPassFilterInfo *) 0 ;
-  long arg4 ;
+_wrap_lmrcImageCTFSNInfo_deg1_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighPassFilter", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageHighPassFilter", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageHighPassFilterInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageHighPassFilterInfo *","lmrcImageHighPassFilter", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg1", 1, self )); 
   }
-  arg3 = (lmrcImageHighPassFilterInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageHighPassFilter", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  lmrcImageHighPassFilter(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  result = (long) ((arg1)->deg1);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageBandPassFilter(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageBandPassFilterInfo *arg3 = (lmrcImageBandPassFilterInfo *) 0 ;
-  long arg4 ;
+_wrap_lmrcImageCTFSNInfo_deg2_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageBandPassFilter", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageBandPassFilter", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageBandPassFilterInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageBandPassFilterInfo *","lmrcImageBandPassFilter", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg2", 1, self )); 
   }
-  arg3 = (lmrcImageBandPassFilterInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageBandPassFilter", 4, argv[3] ));
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","deg2", 2, argv[0] ));
   } 
-  arg4 = (long)(val4);
-  lmrcImageBandPassFilter(arg1,arg2,arg3,arg4);
+  arg2 = (long)(val2);
+  if (arg1) (arg1)->deg2 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21375,101 +23662,58 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageShrink(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeIntegerCoord arg3 ;
-  long arg4 ;
+_wrap_lmrcImageCTFSNInfo_deg2_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShrink", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShrink", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  {
-    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeIntegerCoord,  0 );
-    if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeIntegerCoord","lmrcImageShrink", 3, argv[2] )); 
-    }  
-    if (!argp3) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeIntegerCoord","lmrcImageShrink", 3, argv[2]));
-    } else {
-      arg3 = *((mrcImageParaTypeIntegerCoord *)(argp3));
-    }
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg2", 1, self )); 
   }
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageShrink", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  lmrcImageShrink(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  result = (long) ((arg1)->deg2);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageShift(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeRealCoord arg3 ;
-  mrcPixelDataHowToGet arg4 ;
+_wrap_lmrcImageCTFSNInfo_ctf_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+  ctfInfo arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
+  void *argp2 ;
   int res2 = 0 ;
-  void *argp3 ;
-  int res3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShift", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShift", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","ctf", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
   {
-    res3 = SWIG_ConvertPtr(argv[2], &argp3, SWIGTYPE_p_mrcImageParaTypeRealCoord,  0 );
-    if (!SWIG_IsOK(res3)) {
-      SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "mrcImageParaTypeRealCoord","lmrcImageShift", 3, argv[2] )); 
+    res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_ctfInfo,  0 );
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "ctfInfo","ctf", 2, argv[0] )); 
     }  
-    if (!argp3) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageParaTypeRealCoord","lmrcImageShift", 3, argv[2]));
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "ctfInfo","ctf", 2, argv[0]));
     } else {
-      arg3 = *((mrcImageParaTypeRealCoord *)(argp3));
+      arg2 = *((ctfInfo *)(argp2));
     }
   }
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageShift", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  lmrcImageShift(arg1,arg2,arg3,arg4);
+  if (arg1) (arg1)->ctf = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21477,84 +23721,116 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageShiftFollowingGC(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  int arg3 ;
+_wrap_lmrcImageCTFSNInfo_ctf_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
+  ctfInfo result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShiftFollowingGC", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageShiftFollowingGC", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","ctf", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageShiftFollowingGC", 3, argv[2] ));
-  } 
-  arg3 = (int)(val3);
-  lmrcImageShiftFollowingGC(arg1,arg2,arg3);
+  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
+  result =  ((arg1)->ctf);
+  vresult = SWIG_NewPointerObj((ctfInfo *)memcpy((ctfInfo *)malloc(sizeof(ctfInfo)),&result,sizeof(ctfInfo)), SWIGTYPE_p_ctfInfo, SWIG_POINTER_OWN |  0 );
+  return vresult;
+fail:
   return Qnil;
+}
+
+
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_lmrcImageCTFSNInfo_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_lmrcImageCTFSNInfo_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageCTFSNInfo);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_lmrcImageCTFSNInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageCTFSNInfo *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageCTFSNInfo *)calloc(1, sizeof(struct lmrcImageCTFSNInfo));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_lmrcImageCTFSNInfo(struct lmrcImageCTFSNInfo *arg1) {
+    free((char *) arg1);
+}
+
 SWIGINTERN VALUE
-_wrap_mrcInfoPrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_lmrcImageCTFSN(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeInteger arg3 ;
+  lmrcImageCTFSNInfo *arg3 = (lmrcImageCTFSNInfo *) 0 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","mrcInfoPrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFSN", 1, argv[0] )); 
   }
-  arg1 = (FILE *)(argp1);
+  arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcInfoPrint", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageCTFSN", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeInteger","mrcInfoPrint", 3, argv[2] ));
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageCTFSNInfo *","lmrcImageCTFSN", 3, argv[2] )); 
+  }
+  arg3 = (lmrcImageCTFSNInfo *)(argp3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCTFSN", 4, argv[3] ));
   } 
-  arg3 = (mrcImageParaTypeInteger)(val3);
-  mrcInfoPrint(arg1,arg2,arg3);
+  arg4 = (long)(val4);
+  lmrcImageCTFSN(arg1,(struct mrcImage const *)arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
 }
 
 
-static swig_class SwigClassLmrcImageMultiCTFCompensationInfo;
+static swig_class SwigClassMrcImageFourierPowerSpectrum;
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_mrcImageFourierPowerSpectrum_n_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
   long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21564,17 +23840,17 @@ _wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_set(int argc, VALUE *argv,
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","maxiteration", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","n", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
   ecode2 = SWIG_AsVal_long(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","maxiteration", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","n", 2, argv[0] ));
   } 
   arg2 = (long)(val2);
-  if (arg1) (arg1)->maxiteration = arg2;
+  if (arg1) (arg1)->n = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21582,8 +23858,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_mrcImageFourierPowerSpectrum_n_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   long result;
@@ -21592,12 +23868,12 @@ _wrap_lmrcImageMultiCTFCompensationInfo_maxiteration_get(int argc, VALUE *argv,
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","maxiteration", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","n", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (long) ((arg1)->maxiteration);
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
+  result = (long) ((arg1)->n);
   vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
@@ -21606,8 +23882,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_okrms_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_mrcImageFourierPowerSpectrum_d_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -21617,17 +23893,17 @@ _wrap_lmrcImageMultiCTFCompensationInfo_okrms_set(int argc, VALUE *argv, VALUE s
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","okrms", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","d", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
   ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","okrms", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","d", 2, argv[0] ));
   } 
   arg2 = (double)(val2);
-  if (arg1) (arg1)->okrms = arg2;
+  if (arg1) (arg1)->d = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21635,8 +23911,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_okrms_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_mrcImageFourierPowerSpectrum_d_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   double result;
@@ -21645,12 +23921,12 @@ _wrap_lmrcImageMultiCTFCompensationInfo_okrms_get(int argc, VALUE *argv, VALUE s
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","okrms", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","d", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (double) ((arg1)->okrms);
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
+  result = (double) ((arg1)->d);
   vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
@@ -21659,28 +23935,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_diversefactor_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  long arg2 ;
+_wrap_mrcImageFourierPowerSpectrum_h_set(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
+  double *arg2 = (double *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","diversefactor", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","h", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","diversefactor", 2, argv[0] ));
-  } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->diversefactor = arg2;
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_double, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "double *","h", 2, argv[0] )); 
+  }
+  arg2 = (double *)(argp2);
+  if (arg1) (arg1)->h = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21688,158 +23964,91 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_diversefactor_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_mrcImageFourierPowerSpectrum_h_get(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
+  double *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","diversefactor", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","h", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (long) ((arg1)->diversefactor);
-  vresult = SWIG_From_long((long)(result));
+  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
+  result = (double *) ((arg1)->h);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_z_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  double arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","z", 1, self )); 
+_wrap_mrcImageFourierPowerSpectrum_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_mrcImageFourierPowerSpectrum_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImageFourierPowerSpectrum);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","z", 2, argv[0] ));
-  } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->z = arg2;
-  return Qnil;
-fail:
-  return Qnil;
-}
-
+  
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_z_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
+_wrap_new_mrcImageFourierPowerSpectrum(int argc, VALUE *argv, VALUE self) {
+  struct mrcImageFourierPowerSpectrum *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","z", 1, self )); 
-  }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (double) ((arg1)->z);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_nhist_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  long arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","nhist", 1, self )); 
-  }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","nhist", 2, argv[0] ));
-  } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->nhist = arg2;
-  return Qnil;
+  result = (struct mrcImageFourierPowerSpectrum *)calloc(1, sizeof(struct mrcImageFourierPowerSpectrum));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_nhist_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  long result;
-  VALUE vresult = Qnil;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","nhist", 1, self )); 
-  }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (long) ((arg1)->nhist);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
-fail:
-  return Qnil;
+SWIGINTERN void
+free_mrcImageFourierPowerSpectrum(struct mrcImageFourierPowerSpectrum *arg1) {
+    free((char *) arg1);
 }
 
+static swig_class SwigClassLmrcImageFourierPowerSpectrumInfo;
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_logfile_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  FILE *arg2 = (FILE *) 0 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dX_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","logfile", 1, self )); 
-  }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_FILE, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "FILE *","logfile", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dX", 1, self )); 
   }
-  arg2 = (FILE *)(argp2);
-  if (arg1) (arg1)->logfile = arg2;
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dX", 2, argv[0] ));
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->dX = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21847,23 +24056,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_logfile_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dX_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  FILE *result = 0 ;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","logfile", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dX", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (FILE *) ((arg1)->logfile);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_FILE, 0 |  0 );
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  result = (double) ((arg1)->dX);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -21871,28 +24080,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_solventMode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  lmrcImageMultiCTFCompensationSolventFlatteningMode arg2 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dY_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","solventMode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dY", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationSolventFlatteningMode","solventMode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dY", 2, argv[0] ));
   } 
-  arg2 = (lmrcImageMultiCTFCompensationSolventFlatteningMode)(val2);
-  if (arg1) (arg1)->solventMode = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->dY = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21900,23 +24109,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_solventMode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dY_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  lmrcImageMultiCTFCompensationSolventFlatteningMode result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","solventMode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dY", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (lmrcImageMultiCTFCompensationSolventFlatteningMode) ((arg1)->solventMode);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  result = (double) ((arg1)->dY);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -21924,28 +24133,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_definedSTD_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
-  float arg2 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dZ_set(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+  double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  double val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","definedSTD", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dZ", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  ecode2 = SWIG_AsVal_double(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "float","definedSTD", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dZ", 2, argv[0] ));
   } 
-  arg2 = (float)(val2);
-  if (arg1) (arg1)->definedSTD = arg2;
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->dZ = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -21953,23 +24162,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_definedSTD_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *arg1 = (struct lmrcImageMultiCTFCompensationInfo *) 0 ;
+_wrap_lmrcImageFourierPowerSpectrumInfo_dZ_get(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float result;
+  double result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageMultiCTFCompensationInfo *","definedSTD", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dZ", 1, self )); 
   }
-  arg1 = (struct lmrcImageMultiCTFCompensationInfo *)(argp1);
-  result = (float) ((arg1)->definedSTD);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
+  result = (double) ((arg1)->dZ);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -21978,14 +24187,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfo_allocate(VALUE self) {
+_wrap_lmrcImageFourierPowerSpectrumInfo_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_lmrcImageMultiCTFCompensationInfo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_lmrcImageFourierPowerSpectrumInfo_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -21994,218 +24203,78 @@ _wrap_lmrcImageMultiCTFCompensationInfo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageMultiCTFCompensationInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageMultiCTFCompensationInfo *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct lmrcImageMultiCTFCompensationInfo *)calloc(1, sizeof(struct lmrcImageMultiCTFCompensationInfo));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_lmrcImageMultiCTFCompensationInfo(struct lmrcImageMultiCTFCompensationInfo *arg1) {
-    free((char *) arg1);
-}
-
-SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfoInit(int argc, VALUE *argv, VALUE self) {
-  lmrcImageMultiCTFCompensationInfo *arg1 = (lmrcImageMultiCTFCompensationInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo *","lmrcImageMultiCTFCompensationInfoInit", 1, argv[0] )); 
-  }
-  arg1 = (lmrcImageMultiCTFCompensationInfo *)(argp1);
-  lmrcImageMultiCTFCompensationInfoInit(arg1);
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensationInfoSet(int argc, VALUE *argv, VALUE self) {
-  lmrcImageMultiCTFCompensationInfo *arg1 = (lmrcImageMultiCTFCompensationInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo *","lmrcImageMultiCTFCompensationInfoSet", 1, argv[0] )); 
-  }
-  arg1 = (lmrcImageMultiCTFCompensationInfo *)(argp1);
-  lmrcImageMultiCTFCompensationInfoSet(arg1);
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageMultiCTFCompensation(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  ctfInfo *arg3 = (ctfInfo *) 0 ;
-  long arg4 ;
-  lmrcImageMultiCTFCompensationInfo arg5 ;
-  long arg6 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
-  void *argp5 ;
-  int res5 = 0 ;
-  long val6 ;
-  int ecode6 = 0 ;
-  
-  if ((argc < 6) || (argc > 6)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 6)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMultiCTFCompensation", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMultiCTFCompensation", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageMultiCTFCompensation", 3, argv[2] )); 
-  }
-  arg3 = (ctfInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageMultiCTFCompensation", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  {
-    res5 = SWIG_ConvertPtr(argv[4], &argp5, SWIGTYPE_p_lmrcImageMultiCTFCompensationInfo,  0 );
-    if (!SWIG_IsOK(res5)) {
-      SWIG_exception_fail(SWIG_ArgError(res5), Ruby_Format_TypeError( "", "lmrcImageMultiCTFCompensationInfo","lmrcImageMultiCTFCompensation", 5, argv[4] )); 
-    }  
-    if (!argp5) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "lmrcImageMultiCTFCompensationInfo","lmrcImageMultiCTFCompensation", 5, argv[4]));
-    } else {
-      arg5 = *((lmrcImageMultiCTFCompensationInfo *)(argp5));
-    }
-  }
-  ecode6 = SWIG_AsVal_long(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "long","lmrcImageMultiCTFCompensation", 6, argv[5] ));
-  } 
-  arg6 = (long)(val6);
-  lmrcImageMultiCTFCompensation(arg1,arg2,arg3,arg4,arg5,arg6);
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageCTFObservation(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  ctfInfo *arg3 = (ctfInfo *) 0 ;
-  long arg4 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+_wrap_new_lmrcImageFourierPowerSpectrumInfo(int argc, VALUE *argv, VALUE self) {
+  struct lmrcImageFourierPowerSpectrumInfo *result = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFObservation", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFObservation", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCTFObservation", 3, argv[2] )); 
-  }
-  arg3 = (ctfInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCTFObservation", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  lmrcImageCTFObservation(arg1,arg2,arg3,arg4);
-  return Qnil;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct lmrcImageFourierPowerSpectrumInfo *)calloc(1, sizeof(struct lmrcImageFourierPowerSpectrumInfo));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_lmrcImageFourierPowerSpectrumInfo(struct lmrcImageFourierPowerSpectrumInfo *arg1) {
+    free((char *) arg1);
+}
+
 SWIGINTERN VALUE
-_wrap_lmrcImagesCTFObservation(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageFourierPowerSpectrumMakeSpectrum(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  ctfInfo *arg3 = (ctfInfo *) 0 ;
-  long arg4 ;
+  lmrcImageFourierPowerSpectrumInfo *arg2 = (lmrcImageFourierPowerSpectrumInfo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  mrcImageFourierPowerSpectrum result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagesCTFObservation", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageFourierPowerSpectrumMakeSpectrum", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagesCTFObservation", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "lmrcImageFourierPowerSpectrumInfo *","lmrcImageFourierPowerSpectrumMakeSpectrum", 2, argv[1] )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_ctfInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImagesCTFObservation", 3, argv[2] )); 
+  arg2 = (lmrcImageFourierPowerSpectrumInfo *)(argp2);
+  result = lmrcImageFourierPowerSpectrumMakeSpectrum((struct mrcImage const *)arg1,arg2);
+  vresult = SWIG_NewPointerObj((mrcImageFourierPowerSpectrum *)memcpy((mrcImageFourierPowerSpectrum *)malloc(sizeof(mrcImageFourierPowerSpectrum)),&result,sizeof(mrcImageFourierPowerSpectrum)), SWIGTYPE_p_mrcImageFourierPowerSpectrum, SWIG_POINTER_OWN |  0 );
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_lmrcImageFourierPowerSpectrumDeleteSpectrum(int argc, VALUE *argv, VALUE self) {
+  mrcImageFourierPowerSpectrum arg1 ;
+  void *argp1 ;
+  int res1 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  arg3 = (ctfInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImagesCTFObservation", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  lmrcImagesCTFObservation(arg1,arg2,arg3,arg4);
+  {
+    res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_mrcImageFourierPowerSpectrum,  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImageFourierPowerSpectrum","lmrcImageFourierPowerSpectrumDeleteSpectrum", 1, argv[0] )); 
+    }  
+    if (!argp1) {
+      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageFourierPowerSpectrum","lmrcImageFourierPowerSpectrumDeleteSpectrum", 1, argv[0]));
+    } else {
+      arg1 = *((mrcImageFourierPowerSpectrum *)(argp1));
+    }
+  }
+  lmrcImageFourierPowerSpectrumDeleteSpectrum(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -22213,9 +24282,9 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFCompensation(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageFourierPowerSpectrum(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
-  ctfInfo *arg2 = (ctfInfo *) 0 ;
+  lmrcImageFourierPowerSpectrumInfo *arg2 = (lmrcImageFourierPowerSpectrumInfo *) 0 ;
   long arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22223,57 +24292,50 @@ _wrap_lmrcImageCTFCompensation(int argc, VALUE *argv, VALUE self) {
   int res2 = 0 ;
   long val3 ;
   int ecode3 = 0 ;
+  mrcImageFourierPowerSpectrum result;
+  VALUE vresult = Qnil;
   
   if ((argc < 3) || (argc > 3)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFCompensation", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageFourierPowerSpectrum", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_ctfInfo, 0 |  0 );
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "ctfInfo *","lmrcImageCTFCompensation", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "lmrcImageFourierPowerSpectrumInfo *","lmrcImageFourierPowerSpectrum", 2, argv[1] )); 
   }
-  arg2 = (ctfInfo *)(argp2);
+  arg2 = (lmrcImageFourierPowerSpectrumInfo *)(argp2);
   ecode3 = SWIG_AsVal_long(argv[2], &val3);
   if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageCTFCompensation", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFourierPowerSpectrum", 3, argv[2] ));
   } 
   arg3 = (long)(val3);
-  lmrcImageCTFCompensation(arg1,arg2,arg3);
-  return Qnil;
+  result = lmrcImageFourierPowerSpectrum((struct mrcImage const *)arg1,arg2,arg3);
+  vresult = SWIG_NewPointerObj((mrcImageFourierPowerSpectrum *)memcpy((mrcImageFourierPowerSpectrum *)malloc(sizeof(mrcImageFourierPowerSpectrum)),&result,sizeof(mrcImageFourierPowerSpectrum)), SWIGTYPE_p_mrcImageFourierPowerSpectrum, SWIG_POINTER_OWN |  0 );
+  return vresult;
 fail:
   return Qnil;
 }
 
 
-static swig_class SwigClassLmrcImageCTFSNInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
-  long arg2 ;
+_wrap_lmrcImageRotation3DModePrint(int argc, VALUE *argv, VALUE self) {
+  FILE *arg1 = (FILE *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageRotation3DModePrint", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","mode", 2, argv[0] ));
-  } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  arg1 = (FILE *)(argp1);
+  lmrcImageRotation3DModePrint(arg1);
   return Qnil;
 fail:
   return Qnil;
@@ -22281,105 +24343,132 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+_wrap_lmrcImageRotation3DFollowingEulerAngle(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  char *arg3 = (char *) 0 ;
+  mrcImageParaTypeReal arg4 ;
+  mrcImageParaTypeReal arg5 ;
+  mrcImageParaTypeReal arg6 ;
+  mrcPixelDataHowToGet arg7 ;
+  int arg8 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 8) || (argc > 8)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 8)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  result = (long) ((arg1)->mode);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_deg1_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
-  long arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle", 2, argv[1] )); 
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg1", 1, self )); 
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","lmrcImageRotation3DFollowingEulerAngle", 3, argv[2] ));
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","deg1", 2, argv[0] ));
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 4, argv[3] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->deg1 = arg2;
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_float(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 5, argv[4] ));
+  } 
+  arg5 = (mrcImageParaTypeReal)(val5);
+  ecode6 = SWIG_AsVal_float(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 6, argv[5] ));
+  } 
+  arg6 = (mrcImageParaTypeReal)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingEulerAngle", 7, argv[6] ));
+  } 
+  arg7 = (mrcPixelDataHowToGet)(val7);
+  ecode8 = SWIG_AsVal_int(argv[7], &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingEulerAngle", 8, argv[7] ));
+  } 
+  arg8 = (int)(val8);
+  lmrcImageRotation3DFollowingEulerAngle(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 fail:
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_deg1_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+_wrap_lmrcImageRotation3DFollowingMatrix3D(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  matrix3DParaTypeReal (*arg3)[4] ;
+  mrcPixelDataHowToGet arg4 ;
+  int arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg1", 1, self )); 
-  }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  result = (long) ((arg1)->deg1);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_deg2_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
-  long arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D", 1, argv[0] )); 
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg2", 1, self )); 
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D", 2, argv[1] )); 
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","deg2", 2, argv[0] ));
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","lmrcImageRotation3DFollowingMatrix3D", 3, argv[2] )); 
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->deg2 = arg2;
+  arg3 = (float (*)[4])(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingMatrix3D", 4, argv[3] ));
+  } 
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingMatrix3D", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  lmrcImageRotation3DFollowingMatrix3D(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
   return Qnil;
 fail:
   return Qnil;
@@ -22387,58 +24476,132 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_deg2_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+_wrap_lmrcImageRotation3DFollowingEulerAngle2(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  char *arg3 = (char *) 0 ;
+  mrcImageParaTypeReal arg4 ;
+  mrcImageParaTypeReal arg5 ;
+  mrcImageParaTypeReal arg6 ;
+  mrcPixelDataHowToGet arg7 ;
+  int arg8 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  float val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
+  int val8 ;
+  int ecode8 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 8) || (argc > 8)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 8)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","deg2", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle2", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  result = (long) ((arg1)->deg2);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle2", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","lmrcImageRotation3DFollowingEulerAngle2", 3, argv[2] ));
+  }
+  arg3 = (char *)(buf3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_float(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 5, argv[4] ));
+  } 
+  arg5 = (mrcImageParaTypeReal)(val5);
+  ecode6 = SWIG_AsVal_float(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 6, argv[5] ));
+  } 
+  arg6 = (mrcImageParaTypeReal)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingEulerAngle2", 7, argv[6] ));
+  } 
+  arg7 = (mrcPixelDataHowToGet)(val7);
+  ecode8 = SWIG_AsVal_int(argv[7], &val8);
+  if (!SWIG_IsOK(ecode8)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode8), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingEulerAngle2", 8, argv[7] ));
+  } 
+  arg8 = (int)(val8);
+  lmrcImageRotation3DFollowingEulerAngle2(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return Qnil;
 fail:
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_ctf_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
-  ctfInfo arg2 ;
+_wrap_lmrcImageRotation3DFollowingMatrix3D2(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  matrix3DParaTypeReal (*arg3)[4] ;
+  mrcPixelDataHowToGet arg4 ;
+  int arg5 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 ;
+  void *argp2 = 0 ;
   int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","ctf", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D2", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  {
-    res2 = SWIG_ConvertPtr(argv[0], &argp2, SWIGTYPE_p_ctfInfo,  0 );
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "ctfInfo","ctf", 2, argv[0] )); 
-    }  
-    if (!argp2) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "ctfInfo","ctf", 2, argv[0]));
-    } else {
-      arg2 = *((ctfInfo *)(argp2));
-    }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D2", 2, argv[1] )); 
   }
-  if (arg1) (arg1)->ctf = arg2;
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","lmrcImageRotation3DFollowingMatrix3D2", 3, argv[2] )); 
+  } 
+  arg3 = (float (*)[4])(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingMatrix3D2", 4, argv[3] ));
+  } 
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingMatrix3D2", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  lmrcImageRotation3DFollowingMatrix3D2(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
   return Qnil;
 fail:
   return Qnil;
@@ -22446,79 +24609,87 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_ctf_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *arg1 = (struct lmrcImageCTFSNInfo *) 0 ;
+_wrap_lmrcImageRotation3DZXY(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg3 ;
+  mrcImageParaTypeReal arg4 ;
+  mrcImageParaTypeReal arg5 ;
+  mrcPixelDataHowToGet arg6 ;
+  int arg7 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  ctfInfo result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  float val4 ;
+  int ecode4 = 0 ;
+  float val5 ;
+  int ecode5 = 0 ;
+  int val6 ;
+  int ecode6 = 0 ;
+  int val7 ;
+  int ecode7 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 7) || (argc > 7)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageCTFSNInfo *","ctf", 1, self )); 
-  }
-  arg1 = (struct lmrcImageCTFSNInfo *)(argp1);
-  result =  ((arg1)->ctf);
-  vresult = SWIG_NewPointerObj((ctfInfo *)memcpy((ctfInfo *)malloc(sizeof(ctfInfo)),&result,sizeof(ctfInfo)), SWIGTYPE_p_ctfInfo, SWIG_POINTER_OWN |  0 );
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_lmrcImageCTFSNInfo_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_lmrcImageCTFSNInfo_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageCTFSNInfo);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DZXY", 1, argv[0] )); 
   }
-  
-
-SWIGINTERN VALUE
-_wrap_new_lmrcImageCTFSNInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageCTFSNInfo *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DZXY", 2, argv[1] )); 
   }
-  result = (struct lmrcImageCTFSNInfo *)calloc(1, sizeof(struct lmrcImageCTFSNInfo));
-  DATA_PTR(self) = result;
-  return self;
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_float(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 4, argv[3] ));
+  } 
+  arg4 = (mrcImageParaTypeReal)(val4);
+  ecode5 = SWIG_AsVal_float(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 5, argv[4] ));
+  } 
+  arg5 = (mrcImageParaTypeReal)(val5);
+  ecode6 = SWIG_AsVal_int(argv[5], &val6);
+  if (!SWIG_IsOK(ecode6)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DZXY", 6, argv[5] ));
+  } 
+  arg6 = (mrcPixelDataHowToGet)(val6);
+  ecode7 = SWIG_AsVal_int(argv[6], &val7);
+  if (!SWIG_IsOK(ecode7)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DZXY", 7, argv[6] ));
+  } 
+  arg7 = (int)(val7);
+  lmrcImageRotation3DZXY(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN void
-free_lmrcImageCTFSNInfo(struct lmrcImageCTFSNInfo *arg1) {
-    free((char *) arg1);
-}
-
 SWIGINTERN VALUE
-_wrap_lmrcImageCTFSN(int argc, VALUE *argv, VALUE self) {
+_wrap_lmrcImageRotation2D(int argc, VALUE *argv, VALUE self) {
   mrcImage *arg1 = (mrcImage *) 0 ;
   mrcImage *arg2 = (mrcImage *) 0 ;
-  lmrcImageCTFSNInfo *arg3 = (lmrcImageCTFSNInfo *) 0 ;
-  long arg4 ;
+  double arg3 ;
+  mrcPixelDataHowToGet arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  long val4 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
   int ecode4 = 0 ;
   
   if ((argc < 4) || (argc > 4)) {
@@ -22526,56 +24697,70 @@ _wrap_lmrcImageCTFSN(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageCTFSN", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2D", 1, argv[0] )); 
   }
   arg1 = (mrcImage *)(argp1);
   res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageCTFSN", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2D", 2, argv[1] )); 
   }
   arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_lmrcImageCTFSNInfo, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "lmrcImageCTFSNInfo *","lmrcImageCTFSN", 3, argv[2] )); 
-  }
-  arg3 = (lmrcImageCTFSNInfo *)(argp3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageRotation2D", 3, argv[2] ));
+  } 
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
   if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","lmrcImageCTFSN", 4, argv[3] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation2D", 4, argv[3] ));
   } 
-  arg4 = (long)(val4);
-  lmrcImageCTFSN(arg1,(struct mrcImage const *)arg2,arg3,arg4);
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  lmrcImageRotation2D(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
 }
 
 
-static swig_class SwigClassMrcImageFourierPowerSpectrum;
-
 SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_n_set(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
-  long arg2 ;
+_wrap_lmrcImageRotation2DPeriodicBoundary(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  double arg3 ;
+  mrcPixelDataHowToGet arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  double val3 ;
+  int ecode3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","n", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2DPeriodicBoundary", 1, argv[0] )); 
   }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","n", 2, argv[0] ));
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2DPeriodicBoundary", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_double(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageRotation2DPeriodicBoundary", 3, argv[2] ));
   } 
-  arg2 = (long)(val2);
-  if (arg1) (arg1)->n = arg2;
+  arg3 = (double)(val3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation2DPeriodicBoundary", 4, argv[3] ));
+  } 
+  arg4 = (mrcPixelDataHowToGet)(val4);
+  lmrcImageRotation2DPeriodicBoundary(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -22583,105 +24768,113 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_n_get(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  long result;
+_wrap_mrcImageSectionGetModeDescription(int argc, VALUE *argv, VALUE self) {
+  long arg1 ;
+  long val1 ;
+  int ecode1 = 0 ;
+  char *result = 0 ;
   VALUE vresult = Qnil;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","n", 1, self )); 
-  }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  result = (long) ((arg1)->n);
-  vresult = SWIG_From_long((long)(result));
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_d_set(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
-  double arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
-  
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","d", 1, self )); 
-  }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","d", 2, argv[0] ));
+  ecode1 = SWIG_AsVal_long(argv[0], &val1);
+  if (!SWIG_IsOK(ecode1)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "long","mrcImageSectionGetModeDescription", 1, argv[0] ));
   } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->d = arg2;
-  return Qnil;
+  arg1 = (long)(val1);
+  result = (char *)mrcImageSectionGetModeDescription(arg1);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_d_get(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
+_wrap_mrcImageSectionGet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg3 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","d", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionGet", 1, argv[0] )); 
   }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  result = (double) ((arg1)->d);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionGet", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageSectionGet", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageSectionGet", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  mrcImageSectionGet(arg1,arg2,arg3,arg4);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_h_set(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
-  double *arg2 = (double *) 0 ;
+_wrap_mrcImageSectionSet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  mrcImageParaTypeReal arg3 ;
+  long arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
   int res2 = 0 ;
+  float val3 ;
+  int ecode3 = 0 ;
+  long val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","h", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionSet", 1, argv[0] )); 
   }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_double, SWIG_POINTER_DISOWN |  0 );
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "double *","h", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionSet", 2, argv[1] )); 
   }
-  arg2 = (double *)(argp2);
-  if (arg1) (arg1)->h = arg2;
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_float(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageSectionSet", 3, argv[2] ));
+  } 
+  arg3 = (mrcImageParaTypeReal)(val3);
+  ecode4 = SWIG_AsVal_long(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageSectionSet", 4, argv[3] ));
+  } 
+  arg4 = (long)(val4);
+  mrcImageSectionSet(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -22689,91 +24882,129 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_h_get(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *arg1 = (struct mrcImageFourierPowerSpectrum *) 0 ;
+_wrap_lmrcImageMaxDataGet(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  long arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double *result = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
+  double result;
   VALUE vresult = Qnil;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 2) || (argc > 2)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_mrcImageFourierPowerSpectrum, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct mrcImageFourierPowerSpectrum *","h", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMaxDataGet", 1, argv[0] )); 
   }
-  arg1 = (struct mrcImageFourierPowerSpectrum *)(argp1);
-  result = (double *) ((arg1)->h);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 |  0 );
+  arg1 = (mrcImage *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","lmrcImageMaxDataGet", 2, argv[1] ));
+  } 
+  arg2 = (long)(val2);
+  result = (double)lmrcImageMaxDataGet(arg1,arg2);
+  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_mrcImageFourierPowerSpectrum_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_mrcImageFourierPowerSpectrum_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_mrcImageFourierPowerSpectrum);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
 SWIGINTERN VALUE
-_wrap_new_mrcImageFourierPowerSpectrum(int argc, VALUE *argv, VALUE self) {
-  struct mrcImageFourierPowerSpectrum *result = 0 ;
+_wrap_lmrcImageStackAlloc(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  int arg3 ;
+  int *arg4 = (int *) 0 ;
+  int arg5 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 5) || (argc > 5)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
   }
-  result = (struct mrcImageFourierPowerSpectrum *)calloc(1, sizeof(struct mrcImageFourierPowerSpectrum));
-  DATA_PTR(self) = result;
-  return self;
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackAlloc", 1, argv[0] )); 
+  }
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackAlloc", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageStackAlloc", 3, argv[2] ));
+  } 
+  arg3 = (int)(val3);
+  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_int, 0 |  0 );
+  if (!SWIG_IsOK(res4)) {
+    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "int *","lmrcImageStackAlloc", 4, argv[3] )); 
+  }
+  arg4 = (int *)(argp4);
+  ecode5 = SWIG_AsVal_int(argv[4], &val5);
+  if (!SWIG_IsOK(ecode5)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageStackAlloc", 5, argv[4] ));
+  } 
+  arg5 = (int)(val5);
+  lmrcImageStackAlloc(arg1,arg2,arg3,arg4,arg5);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN void
-free_mrcImageFourierPowerSpectrum(struct mrcImageFourierPowerSpectrum *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassLmrcImageFourierPowerSpectrumInfo;
-
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dX_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
-  double arg2 ;
+_wrap_lmrcImageStackPush(int argc, VALUE *argv, VALUE self) {
+  mrcImage *arg1 = (mrcImage *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  int *arg3 = (int *) 0 ;
+  int arg4 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  int val4 ;
+  int ecode4 = 0 ;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 4) || (argc > 4)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dX", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackPush", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dX", 2, argv[0] ));
+  arg1 = (mrcImage *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackPush", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_int, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "int *","lmrcImageStackPush", 3, argv[2] )); 
+  }
+  arg3 = (int *)(argp3);
+  ecode4 = SWIG_AsVal_int(argv[3], &val4);
+  if (!SWIG_IsOK(ecode4)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcImageStackPush", 4, argv[3] ));
   } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->dX = arg2;
+  arg4 = (int)(val4);
+  lmrcImageStackPush(arg1,arg2,arg3,arg4);
   return Qnil;
 fail:
   return Qnil;
@@ -22781,52 +25012,68 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dX_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+_wrap_lmrcImagePixelValueSort(int argc, VALUE *argv, VALUE self) {
+  double *arg1 = (double *) 0 ;
+  mrcImage *arg2 = (mrcImage *) 0 ;
+  int arg3 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  int val3 ;
+  int ecode3 = 0 ;
   
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  if ((argc < 3) || (argc > 3)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_double, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dX", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "double *","lmrcImagePixelValueSort", 1, argv[0] )); 
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  result = (double) ((arg1)->dX);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg1 = (double *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImagePixelValueSort", 2, argv[1] )); 
+  }
+  arg2 = (mrcImage *)(argp2);
+  ecode3 = SWIG_AsVal_int(argv[2], &val3);
+  if (!SWIG_IsOK(ecode3)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImagePixelValueSort", 3, argv[2] ));
+  } 
+  arg3 = (int)(val3);
+  lmrcImagePixelValueSort(arg1,arg2,arg3);
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
+static swig_class SwigClassResidueName;
+
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dY_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
-  double arg2 ;
+_wrap_residueName_residueName3_set(int argc, VALUE *argv, VALUE self) {
+  struct residueName *arg1 = (struct residueName *) 0 ;
+  char *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  char temp2[4] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dY", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName3", 1, self )); 
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dY", 2, argv[0] ));
-  } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->dY = arg2;
+  arg1 = (struct residueName *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, 4);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [4]","residueName3", 2, argv[0] ));
+  }
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->residueName3,arg2,4*sizeof(char));
+  else memset(arg1->residueName3,0,4*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -22834,23 +25081,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dY_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+_wrap_residueName_residueName3_get(int argc, VALUE *argv, VALUE self) {
+  struct residueName *arg1 = (struct residueName *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double result;
+  char *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dY", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName3", 1, self )); 
+  }
+  arg1 = (struct residueName *)(argp1);
+  result = (char *)(char *) ((arg1)->residueName3);
+  {
+    size_t size = 4;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  result = (double) ((arg1)->dY);
-  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -22858,28 +25111,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dZ_set(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
-  double arg2 ;
+_wrap_residueName_residueName1_set(int argc, VALUE *argv, VALUE self) {
+  struct residueName *arg1 = (struct residueName *) 0 ;
+  char *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double val2 ;
-  int ecode2 = 0 ;
+  char temp2[2] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dZ", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName1", 1, self )); 
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  ecode2 = SWIG_AsVal_double(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "double","dZ", 2, argv[0] ));
-  } 
-  arg2 = (double)(val2);
-  if (arg1) (arg1)->dZ = arg2;
+  arg1 = (struct residueName *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, 2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [2]","residueName1", 2, argv[0] ));
+  }
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->residueName1,arg2,2*sizeof(char));
+  else memset(arg1->residueName1,0,2*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -22887,23 +25141,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_dZ_get(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *arg1 = (struct lmrcImageFourierPowerSpectrumInfo *) 0 ;
+_wrap_residueName_residueName1_get(int argc, VALUE *argv, VALUE self) {
+  struct residueName *arg1 = (struct residueName *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  double result;
+  char *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct lmrcImageFourierPowerSpectrumInfo *","dZ", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName1", 1, self )); 
+  }
+  arg1 = (struct residueName *)(argp1);
+  result = (char *)(char *) ((arg1)->residueName1);
+  {
+    size_t size = 2;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct lmrcImageFourierPowerSpectrumInfo *)(argp1);
-  result = (double) ((arg1)->dZ);
-  vresult = SWIG_From_double((double)(result));
   return vresult;
 fail:
   return Qnil;
@@ -22912,14 +25172,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumInfo_allocate(VALUE self) {
+_wrap_residueName_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_lmrcImageFourierPowerSpectrumInfo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_residueName_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_residueName);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -22928,13 +25188,13 @@ _wrap_lmrcImageFourierPowerSpectrumInfo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_lmrcImageFourierPowerSpectrumInfo(int argc, VALUE *argv, VALUE self) {
-  struct lmrcImageFourierPowerSpectrumInfo *result = 0 ;
+_wrap_new_residueName(int argc, VALUE *argv, VALUE self) {
+  struct residueName *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct lmrcImageFourierPowerSpectrumInfo *)calloc(1, sizeof(struct lmrcImageFourierPowerSpectrumInfo));
+  result = (struct residueName *)calloc(1, sizeof(struct residueName));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -22943,63 +25203,35 @@ fail:
 
 
 SWIGINTERN void
-free_lmrcImageFourierPowerSpectrumInfo(struct lmrcImageFourierPowerSpectrumInfo *arg1) {
+free_residueName(struct residueName *arg1) {
     free((char *) arg1);
 }
 
-SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumMakeSpectrum(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  lmrcImageFourierPowerSpectrumInfo *arg2 = (lmrcImageFourierPowerSpectrumInfo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  mrcImageFourierPowerSpectrum result;
-  VALUE vresult = Qnil;
-  
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageFourierPowerSpectrumMakeSpectrum", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "lmrcImageFourierPowerSpectrumInfo *","lmrcImageFourierPowerSpectrumMakeSpectrum", 2, argv[1] )); 
-  }
-  arg2 = (lmrcImageFourierPowerSpectrumInfo *)(argp2);
-  result = lmrcImageFourierPowerSpectrumMakeSpectrum((struct mrcImage const *)arg1,arg2);
-  vresult = SWIG_NewPointerObj((mrcImageFourierPowerSpectrum *)memcpy((mrcImageFourierPowerSpectrum *)malloc(sizeof(mrcImageFourierPowerSpectrum)),&result,sizeof(mrcImageFourierPowerSpectrum)), SWIGTYPE_p_mrcImageFourierPowerSpectrum, SWIG_POINTER_OWN |  0 );
-  return vresult;
-fail:
-  return Qnil;
-}
-
+static swig_class SwigClassPdbCoord;
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrumDeleteSpectrum(int argc, VALUE *argv, VALUE self) {
-  mrcImageFourierPowerSpectrum arg1 ;
-  void *argp1 ;
+_wrap_pdbCoord_x_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+  pdbFileParaTypeReal arg2 ;
+  void *argp1 = 0 ;
   int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  {
-    res1 = SWIG_ConvertPtr(argv[0], &argp1, SWIGTYPE_p_mrcImageFourierPowerSpectrum,  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImageFourierPowerSpectrum","lmrcImageFourierPowerSpectrumDeleteSpectrum", 1, argv[0] )); 
-    }  
-    if (!argp1) {
-      SWIG_exception_fail(SWIG_ValueError, Ruby_Format_TypeError("invalid null reference ", "mrcImageFourierPowerSpectrum","lmrcImageFourierPowerSpectrumDeleteSpectrum", 1, argv[0]));
-    } else {
-      arg1 = *((mrcImageFourierPowerSpectrum *)(argp1));
-    }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","x", 1, self )); 
   }
-  lmrcImageFourierPowerSpectrumDeleteSpectrum(arg1);
+  arg1 = (struct pdbCoord *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","x", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->x = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23007,39 +25239,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageFourierPowerSpectrum(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  lmrcImageFourierPowerSpectrumInfo *arg2 = (lmrcImageFourierPowerSpectrumInfo *) 0 ;
-  long arg3 ;
+_wrap_pdbCoord_x_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  long val3 ;
-  int ecode3 = 0 ;
-  mrcImageFourierPowerSpectrum result;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
-  if ((argc < 3) || (argc > 3)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 3)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage const *","lmrcImageFourierPowerSpectrum", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_lmrcImageFourierPowerSpectrumInfo, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "lmrcImageFourierPowerSpectrumInfo *","lmrcImageFourierPowerSpectrum", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","x", 1, self )); 
   }
-  arg2 = (lmrcImageFourierPowerSpectrumInfo *)(argp2);
-  ecode3 = SWIG_AsVal_long(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "long","lmrcImageFourierPowerSpectrum", 3, argv[2] ));
-  } 
-  arg3 = (long)(val3);
-  result = lmrcImageFourierPowerSpectrum((struct mrcImage const *)arg1,arg2,arg3);
-  vresult = SWIG_NewPointerObj((mrcImageFourierPowerSpectrum *)memcpy((mrcImageFourierPowerSpectrum *)malloc(sizeof(mrcImageFourierPowerSpectrum)),&result,sizeof(mrcImageFourierPowerSpectrum)), SWIGTYPE_p_mrcImageFourierPowerSpectrum, SWIG_POINTER_OWN |  0 );
+  arg1 = (struct pdbCoord *)(argp1);
+  result = (pdbFileParaTypeReal) ((arg1)->x);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -23047,20 +25263,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DModePrint(int argc, VALUE *argv, VALUE self) {
-  FILE *arg1 = (FILE *) 0 ;
+_wrap_pdbCoord_y_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_FILE, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "FILE *","lmrcImageRotation3DModePrint", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","y", 1, self )); 
   }
-  arg1 = (FILE *)(argp1);
-  lmrcImageRotation3DModePrint(arg1);
+  arg1 = (struct pdbCoord *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","y", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->y = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23068,132 +25292,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DFollowingEulerAngle(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  char *arg3 = (char *) 0 ;
-  mrcImageParaTypeReal arg4 ;
-  mrcImageParaTypeReal arg5 ;
-  mrcImageParaTypeReal arg6 ;
-  mrcPixelDataHowToGet arg7 ;
-  int arg8 ;
+_wrap_pdbCoord_y_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  float val5 ;
-  int ecode5 = 0 ;
-  float val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
-  int val8 ;
-  int ecode8 = 0 ;
+  pdbFileParaTypeReal result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 8) || (argc > 8)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 8)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","lmrcImageRotation3DFollowingEulerAngle", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","y", 1, self )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_float(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 5, argv[4] ));
-  } 
-  arg5 = (mrcImageParaTypeReal)(val5);
-  ecode6 = SWIG_AsVal_float(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle", 6, argv[5] ));
-  } 
-  arg6 = (mrcImageParaTypeReal)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingEulerAngle", 7, argv[6] ));
-  } 
-  arg7 = (mrcPixelDataHowToGet)(val7);
-  ecode8 = SWIG_AsVal_int(argv[7], &val8);
-  if (!SWIG_IsOK(ecode8)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode8), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingEulerAngle", 8, argv[7] ));
-  } 
-  arg8 = (int)(val8);
-  lmrcImageRotation3DFollowingEulerAngle(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return Qnil;
+  arg1 = (struct pdbCoord *)(argp1);
+  result = (pdbFileParaTypeReal) ((arg1)->y);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
 fail:
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DFollowingMatrix3D(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  matrix3DParaTypeReal (*arg3)[4] ;
-  mrcPixelDataHowToGet arg4 ;
-  int arg5 ;
+_wrap_pdbCoord_z_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","z", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","lmrcImageRotation3DFollowingMatrix3D", 3, argv[2] )); 
-  } 
-  arg3 = (float (*)[4])(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingMatrix3D", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingMatrix3D", 5, argv[4] ));
+  arg1 = (struct pdbCoord *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","z", 2, argv[0] ));
   } 
-  arg5 = (int)(val5);
-  lmrcImageRotation3DFollowingMatrix3D(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->z = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23201,201 +25345,91 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DFollowingEulerAngle2(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  char *arg3 = (char *) 0 ;
-  mrcImageParaTypeReal arg4 ;
-  mrcImageParaTypeReal arg5 ;
-  mrcImageParaTypeReal arg6 ;
-  mrcPixelDataHowToGet arg7 ;
-  int arg8 ;
+_wrap_pdbCoord_z_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  float val5 ;
-  int ecode5 = 0 ;
-  float val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
-  int val8 ;
-  int ecode8 = 0 ;
+  pdbFileParaTypeReal result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 8) || (argc > 8)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 8)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle2", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingEulerAngle2", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_AsCharPtrAndSize(argv[2], &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "char const *","lmrcImageRotation3DFollowingEulerAngle2", 3, argv[2] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","z", 1, self )); 
   }
-  arg3 = (char *)(buf3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_float(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 5, argv[4] ));
-  } 
-  arg5 = (mrcImageParaTypeReal)(val5);
-  ecode6 = SWIG_AsVal_float(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DFollowingEulerAngle2", 6, argv[5] ));
-  } 
-  arg6 = (mrcImageParaTypeReal)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingEulerAngle2", 7, argv[6] ));
-  } 
-  arg7 = (mrcPixelDataHowToGet)(val7);
-  ecode8 = SWIG_AsVal_int(argv[7], &val8);
-  if (!SWIG_IsOK(ecode8)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode8), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingEulerAngle2", 8, argv[7] ));
-  } 
-  arg8 = (int)(val8);
-  lmrcImageRotation3DFollowingEulerAngle2(arg1,arg2,(char const *)arg3,arg4,arg5,arg6,arg7,arg8);
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
-  return Qnil;
+  arg1 = (struct pdbCoord *)(argp1);
+  result = (pdbFileParaTypeReal) ((arg1)->z);
+  vresult = SWIG_From_float((float)(result));
+  return vresult;
 fail:
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DFollowingMatrix3D2(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  matrix3DParaTypeReal (*arg3)[4] ;
-  mrcPixelDataHowToGet arg4 ;
-  int arg5 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
-  
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D2", 1, argv[0] )); 
+_wrap_pdbCoord_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_pdbCoord_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbCoord);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DFollowingMatrix3D2", 2, argv[1] )); 
+  
+
+SWIGINTERN VALUE
+_wrap_new_pdbCoord(int argc, VALUE *argv, VALUE self) {
+  struct pdbCoord *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_a_4__float, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "float [4][4]","lmrcImageRotation3DFollowingMatrix3D2", 3, argv[2] )); 
-  } 
-  arg3 = (float (*)[4])(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DFollowingMatrix3D2", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DFollowingMatrix3D2", 5, argv[4] ));
-  } 
-  arg5 = (int)(val5);
-  lmrcImageRotation3DFollowingMatrix3D2(arg1,arg2,(float (*)[4])arg3,arg4,arg5);
-  return Qnil;
+  result = (struct pdbCoord *)calloc(1, sizeof(struct pdbCoord));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_pdbCoord(struct pdbCoord *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassPdbSecondaryStructureHelix;
+
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation3DZXY(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg3 ;
-  mrcImageParaTypeReal arg4 ;
-  mrcImageParaTypeReal arg5 ;
-  mrcPixelDataHowToGet arg6 ;
-  int arg7 ;
+_wrap_pdbSecondaryStructureHelix_serNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  float val4 ;
-  int ecode4 = 0 ;
-  float val5 ;
-  int ecode5 = 0 ;
-  int val6 ;
-  int ecode6 = 0 ;
-  int val7 ;
-  int ecode7 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
   
-  if ((argc < 7) || (argc > 7)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 7)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DZXY", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation3DZXY", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","serNum", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_float(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 4, argv[3] ));
-  } 
-  arg4 = (mrcImageParaTypeReal)(val4);
-  ecode5 = SWIG_AsVal_float(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","lmrcImageRotation3DZXY", 5, argv[4] ));
-  } 
-  arg5 = (mrcImageParaTypeReal)(val5);
-  ecode6 = SWIG_AsVal_int(argv[5], &val6);
-  if (!SWIG_IsOK(ecode6)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode6), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation3DZXY", 6, argv[5] ));
-  } 
-  arg6 = (mrcPixelDataHowToGet)(val6);
-  ecode7 = SWIG_AsVal_int(argv[6], &val7);
-  if (!SWIG_IsOK(ecode7)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode7), Ruby_Format_TypeError( "", "int","lmrcImageRotation3DZXY", 7, argv[6] ));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","serNum", 2, argv[0] ));
   } 
-  arg7 = (int)(val7);
-  lmrcImageRotation3DZXY(arg1,arg2,arg3,arg4,arg5,arg6,arg7);
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->serNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23403,112 +25437,84 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation2D(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  double arg3 ;
-  mrcPixelDataHowToGet arg4 ;
+_wrap_pdbSecondaryStructureHelix_serNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2D", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2D", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","serNum", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageRotation2D", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation2D", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  lmrcImageRotation2D(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (int) ((arg1)->serNum);
+  vresult = SWIG_From_int((int)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageRotation2DPeriodicBoundary(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  double arg3 ;
-  mrcPixelDataHowToGet arg4 ;
+_wrap_pdbSecondaryStructureHelix_helixID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  double val3 ;
-  int ecode3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2DPeriodicBoundary", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixID", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageRotation2DPeriodicBoundary", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","helixID", 2, argv[0] ));
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_double(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "double","lmrcImageRotation2DPeriodicBoundary", 3, argv[2] ));
-  } 
-  arg3 = (double)(val3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "mrcPixelDataHowToGet","lmrcImageRotation2DPeriodicBoundary", 4, argv[3] ));
-  } 
-  arg4 = (mrcPixelDataHowToGet)(val4);
-  lmrcImageRotation2DPeriodicBoundary(arg1,arg2,arg3,arg4);
+  arg2 = (char *)(buf2);
+  if (arg1->helixID) free((char*)arg1->helixID);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->helixID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->helixID = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageSectionGetModeDescription(int argc, VALUE *argv, VALUE self) {
-  long arg1 ;
-  long val1 ;
-  int ecode1 = 0 ;
+_wrap_pdbSecondaryStructureHelix_helixID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
   char *result = 0 ;
   VALUE vresult = Qnil;
   
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  ecode1 = SWIG_AsVal_long(argv[0], &val1);
-  if (!SWIG_IsOK(ecode1)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode1), Ruby_Format_TypeError( "", "long","mrcImageSectionGetModeDescription", 1, argv[0] ));
-  } 
-  arg1 = (long)(val1);
-  result = (char *)mrcImageSectionGetModeDescription(arg1);
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixID", 1, self )); 
+  }
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char *) ((arg1)->helixID);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -23517,174 +25523,143 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageSectionGet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg3 ;
-  long arg4 ;
+_wrap_pdbSecondaryStructureHelix_initResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionGet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initResName", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionGet", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageSectionGet", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageSectionGet", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  mrcImageSectionGet(arg1,arg2,arg3,arg4);
+  arg2 = (char *)(buf2);
+  if (arg1->initResName) free((char*)arg1->initResName);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->initResName = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_mrcImageSectionSet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  mrcImageParaTypeReal arg3 ;
-  long arg4 ;
+_wrap_pdbSecondaryStructureHelix_initResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  float val3 ;
-  int ecode3 = 0 ;
-  long val4 ;
-  int ecode4 = 0 ;
+  char *result = 0 ;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionSet", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","mrcImageSectionSet", 2, argv[1] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initResName", 1, self )); 
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_float(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "mrcImageParaTypeReal","mrcImageSectionSet", 3, argv[2] ));
-  } 
-  arg3 = (mrcImageParaTypeReal)(val3);
-  ecode4 = SWIG_AsVal_long(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "long","mrcImageSectionSet", 4, argv[3] ));
-  } 
-  arg4 = (long)(val4);
-  mrcImageSectionSet(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char *) ((arg1)->initResName);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageMaxDataGet(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  long arg2 ;
+_wrap_pdbSecondaryStructureHelix_initChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  char val2 ;
   int ecode2 = 0 ;
-  double result;
-  VALUE vresult = Qnil;
   
-  if ((argc < 2) || (argc > 2)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 2)",argc); SWIG_fail;
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageMaxDataGet", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initChainID", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[1], &val2);
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "long","lmrcImageMaxDataGet", 2, argv[1] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
   } 
-  arg2 = (long)(val2);
-  result = (double)lmrcImageMaxDataGet(arg1,arg2);
-  vresult = SWIG_From_double((double)(result));
-  return vresult;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->initChainID = arg2;
+  return Qnil;
 fail:
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageStackAlloc(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  int arg3 ;
-  int *arg4 = (int *) 0 ;
-  int arg5 ;
+_wrap_pdbSecondaryStructureHelix_initChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  int val3 ;
-  int ecode3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
+  char result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 5) || (argc > 5)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 5)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackAlloc", 1, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initChainID", 1, self )); 
   }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackAlloc", 2, argv[1] )); 
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char) ((arg1)->initChainID);
+  vresult = SWIG_From_char((char)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureHelix_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  arg2 = (mrcImage *)(argp2);
-  ecode3 = SWIG_AsVal_int(argv[2], &val3);
-  if (!SWIG_IsOK(ecode3)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode3), Ruby_Format_TypeError( "", "int","lmrcImageStackAlloc", 3, argv[2] ));
-  } 
-  arg3 = (int)(val3);
-  res4 = SWIG_ConvertPtr(argv[3], &argp4,SWIGTYPE_p_int, 0 |  0 );
-  if (!SWIG_IsOK(res4)) {
-    SWIG_exception_fail(SWIG_ArgError(res4), Ruby_Format_TypeError( "", "int *","lmrcImageStackAlloc", 4, argv[3] )); 
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initSeqNum", 1, self )); 
   }
-  arg4 = (int *)(argp4);
-  ecode5 = SWIG_AsVal_int(argv[4], &val5);
-  if (!SWIG_IsOK(ecode5)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode5), Ruby_Format_TypeError( "", "int","lmrcImageStackAlloc", 5, argv[4] ));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
   } 
-  arg5 = (int)(val5);
-  lmrcImageStackAlloc(arg1,arg2,arg3,arg4,arg5);
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->initSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23692,76 +25667,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_lmrcImageStackPush(int argc, VALUE *argv, VALUE self) {
-  mrcImage *arg1 = (mrcImage *) 0 ;
-  mrcImage *arg2 = (mrcImage *) 0 ;
-  int *arg3 = (int *) 0 ;
-  int arg4 ;
+_wrap_pdbSecondaryStructureHelix_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  int val4 ;
-  int ecode4 = 0 ;
+  int result;
+  VALUE vresult = Qnil;
   
-  if ((argc < 4) || (argc > 4)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 4)",argc); SWIG_fail;
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_mrcImage, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackPush", 1, argv[0] )); 
-  }
-  arg1 = (mrcImage *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[1], &argp2,SWIGTYPE_p_mrcImage, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "mrcImage *","lmrcImageStackPush", 2, argv[1] )); 
-  }
-  arg2 = (mrcImage *)(argp2);
-  res3 = SWIG_ConvertPtr(argv[2], &argp3,SWIGTYPE_p_int, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), Ruby_Format_TypeError( "", "int *","lmrcImageStackPush", 3, argv[2] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initSeqNum", 1, self )); 
   }
-  arg3 = (int *)(argp3);
-  ecode4 = SWIG_AsVal_int(argv[3], &val4);
-  if (!SWIG_IsOK(ecode4)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode4), Ruby_Format_TypeError( "", "int","lmrcImageStackPush", 4, argv[3] ));
-  } 
-  arg4 = (int)(val4);
-  lmrcImageStackPush(arg1,arg2,arg3,arg4);
-  return Qnil;
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (int) ((arg1)->initSeqNum);
+  vresult = SWIG_From_int((int)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
-static swig_class SwigClassResidueName;
-
 SWIGINTERN VALUE
-_wrap_residueName_residueName3_set(int argc, VALUE *argv, VALUE self) {
-  struct residueName *arg1 = (struct residueName *) 0 ;
-  char *arg2 ;
+_wrap_pdbSecondaryStructureHelix_initICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[4] ;
-  int res2 ;
+  char val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName3", 1, self )); 
-  }
-  arg1 = (struct residueName *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, 4);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [4]","residueName3", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initICode", 1, self )); 
   }
-  arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->residueName3,arg2,4*sizeof(char));
-  else memset(arg1->residueName3,0,4*sizeof(char));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
+  } 
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->initICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23769,29 +25720,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_residueName_residueName3_get(int argc, VALUE *argv, VALUE self) {
-  struct residueName *arg1 = (struct residueName *) 0 ;
+_wrap_pdbSecondaryStructureHelix_initICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName3", 1, self )); 
-  }
-  arg1 = (struct residueName *)(argp1);
-  result = (char *)(char *) ((arg1)->residueName3);
-  {
-    size_t size = 4;
-    
-    while (size && (result[size - 1] == '\0')) --size;
-    
-    vresult = SWIG_FromCharPtrAndSize(result, size);
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initICode", 1, self )); 
   }
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char) ((arg1)->initICode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -23799,38 +25744,46 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_residueName_residueName1_set(int argc, VALUE *argv, VALUE self) {
-  struct residueName *arg1 = (struct residueName *) 0 ;
-  char *arg2 ;
+_wrap_pdbSecondaryStructureHelix_endResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[2] ;
   int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName1", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endResName", 1, self )); 
   }
-  arg1 = (struct residueName *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, 2);
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [2]","residueName1", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
   }
-  arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->residueName1,arg2,2*sizeof(char));
-  else memset(arg1->residueName1,0,2*sizeof(char));
+  arg2 = (char *)(buf2);
+  if (arg1->endResName) free((char*)arg1->endResName);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->endResName = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_residueName_residueName1_get(int argc, VALUE *argv, VALUE self) {
-  struct residueName *arg1 = (struct residueName *) 0 ;
+_wrap_pdbSecondaryStructureHelix_endResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -23839,87 +25792,42 @@ _wrap_residueName_residueName1_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_residueName, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct residueName *","residueName1", 1, self )); 
-  }
-  arg1 = (struct residueName *)(argp1);
-  result = (char *)(char *) ((arg1)->residueName1);
-  {
-    size_t size = 2;
-    
-    while (size && (result[size - 1] == '\0')) --size;
-    
-    vresult = SWIG_FromCharPtrAndSize(result, size);
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endResName", 1, self )); 
   }
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char *) ((arg1)->endResName);
+  vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_residueName_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_residueName_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_residueName);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_residueName(int argc, VALUE *argv, VALUE self) {
-  struct residueName *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct residueName *)calloc(1, sizeof(struct residueName));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_residueName(struct residueName *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassPdbCoord;
-
 SWIGINTERN VALUE
-_wrap_pdbCoord_x_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
-  pdbFileParaTypeReal arg2 ;
+_wrap_pdbSecondaryStructureHelix_endChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","x", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","x", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeReal)(val2);
-  if (arg1) (arg1)->x = arg2;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23927,23 +25835,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbCoord_x_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+_wrap_pdbSecondaryStructureHelix_endChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeReal result;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","x", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  result = (pdbFileParaTypeReal) ((arg1)->x);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char) ((arg1)->endChainID);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -23951,28 +25859,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbCoord_y_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
-  pdbFileParaTypeReal arg2 ;
+_wrap_pdbSecondaryStructureHelix_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","y", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","y", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeReal)(val2);
-  if (arg1) (arg1)->y = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->endSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -23980,23 +25888,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbCoord_y_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+_wrap_pdbSecondaryStructureHelix_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeReal result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","y", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  result = (pdbFileParaTypeReal) ((arg1)->y);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (int) ((arg1)->endSeqNum);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24004,28 +25912,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbCoord_z_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
-  pdbFileParaTypeReal arg2 ;
+_wrap_pdbSecondaryStructureHelix_endICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  float val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","z", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","z", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeReal)(val2);
-  if (arg1) (arg1)->z = arg2;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24033,72 +25941,33 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbCoord_z_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *arg1 = (struct pdbCoord *) 0 ;
+_wrap_pdbSecondaryStructureHelix_endICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeReal result;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbCoord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbCoord *","z", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbCoord *)(argp1);
-  result = (pdbFileParaTypeReal) ((arg1)->z);
-  vresult = SWIG_From_float((float)(result));
+  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  result = (char) ((arg1)->endICode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_pdbCoord_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_pdbCoord_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbCoord);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_pdbCoord(int argc, VALUE *argv, VALUE self) {
-  struct pdbCoord *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct pdbCoord *)calloc(1, sizeof(struct pdbCoord));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_pdbCoord(struct pdbCoord *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassPdbSecondaryStructureHelix;
-
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_serNum_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_helixClass_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  int arg2 ;
+  pdbSecondaryStructureHelixClass arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -24109,15 +25978,15 @@ _wrap_pdbSecondaryStructureHelix_serNum_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixClass", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","serNum", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbSecondaryStructureHelixClass","helixClass", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->serNum = arg2;
+  arg2 = (pdbSecondaryStructureHelixClass)(val2);
+  if (arg1) (arg1)->helixClass = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24125,11 +25994,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_serNum_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_helixClass_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  pdbSecondaryStructureHelixClass result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -24137,10 +26006,10 @@ _wrap_pdbSecondaryStructureHelix_serNum_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixClass", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (int) ((arg1)->serNum);
+  result = (pdbSecondaryStructureHelixClass) ((arg1)->helixClass);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -24149,7 +26018,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_helixID_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_comment_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -24163,20 +26032,20 @@ _wrap_pdbSecondaryStructureHelix_helixID_set(int argc, VALUE *argv, VALUE self)
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","comment", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","helixID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","comment", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->helixID) free((char*)arg1->helixID);
+  if (arg1->comment) free((char*)arg1->comment);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->helixID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->comment = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->helixID = 0;
+    arg1->comment = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -24187,7 +26056,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_helixID_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_comment_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24199,10 +26068,10 @@ _wrap_pdbSecondaryStructureHelix_helixID_get(int argc, VALUE *argv, VALUE self)
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","comment", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char *) ((arg1)->helixID);
+  result = (char *) ((arg1)->comment);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -24211,49 +26080,40 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initResName_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_length_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  char *arg2 = (char *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","length", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->initResName) free((char*)arg1->initResName);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->initResName = 0;
-  }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","length", 2, argv[0] ));
+  } 
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->length = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initResName_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureHelix_length_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -24261,40 +26121,79 @@ _wrap_pdbSecondaryStructureHelix_initResName_get(int argc, VALUE *argv, VALUE se
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","length", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char *) ((arg1)->initResName);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  result = (int) ((arg1)->length);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  char arg2 ;
+_wrap_pdbSecondaryStructureHelix_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_pdbSecondaryStructureHelix_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureHelix);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_pdbSecondaryStructureHelix(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureHelix *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct pdbSecondaryStructureHelix *)calloc(1, sizeof(struct pdbSecondaryStructureHelix));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_pdbSecondaryStructureHelix(struct pdbSecondaryStructureHelix *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassPdbSecondaryStructureSheet;
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_strand_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","strand", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","strand", 2, argv[0] ));
   } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->initChainID = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->strand = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24302,23 +26201,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_strand_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","strand", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char) ((arg1)->initChainID);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (int) ((arg1)->strand);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24326,52 +26225,61 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  int arg2 ;
+_wrap_pdbSecondaryStructureSheet_sheetID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sheetID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
-  } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->initSeqNum = arg2;
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","sheetID", 2, argv[0] ));
+  }
+  arg2 = (char *)(buf2);
+  if (arg1->sheetID) free((char*)arg1->sheetID);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->sheetID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->sheetID = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_sheetID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  char *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sheetID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (int) ((arg1)->initSeqNum);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char *) ((arg1)->sheetID);
+  vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
   return Qnil;
@@ -24379,28 +26287,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  char arg2 ;
+_wrap_pdbSecondaryStructureSheet_numStrands_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","numStrands", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","numStrands", 2, argv[0] ));
   } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->initICode = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->numStrands = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24408,23 +26316,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_initICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_numStrands_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","numStrands", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char) ((arg1)->initICode);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (int) ((arg1)->numStrands);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24432,8 +26340,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24444,22 +26352,22 @@ _wrap_pdbSecondaryStructureHelix_endResName_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->endResName) free((char*)arg1->endResName);
+  if (arg1->initResName) free((char*)arg1->initResName);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->endResName = 0;
+    arg1->initResName = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -24470,8 +26378,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -24480,12 +26388,12 @@ _wrap_pdbSecondaryStructureHelix_endResName_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char *) ((arg1)->endResName);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char *) ((arg1)->initResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -24494,8 +26402,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24505,17 +26413,17 @@ _wrap_pdbSecondaryStructureHelix_endChainID_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->endChainID = arg2;
+  if (arg1) (arg1)->initChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24523,8 +26431,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -24533,12 +26441,12 @@ _wrap_pdbSecondaryStructureHelix_endChainID_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char) ((arg1)->endChainID);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char) ((arg1)->initChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -24547,8 +26455,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24558,70 +26466,17 @@ _wrap_pdbSecondaryStructureHelix_endSeqNum_set(int argc, VALUE *argv, VALUE self
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endSeqNum", 1, self )); 
-  }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
-  } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->endSeqNum = arg2;
-  return Qnil;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int result;
-  VALUE vresult = Qnil;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endSeqNum", 1, self )); 
-  }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (int) ((arg1)->endSeqNum);
-  vresult = SWIG_From_int((int)(result));
-  return vresult;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  char arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
   } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->endICode = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->initSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24629,23 +26484,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_endICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char) ((arg1)->endICode);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (int) ((arg1)->initSeqNum);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24653,28 +26508,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_helixClass_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  pdbSecondaryStructureHelixClass arg2 ;
+_wrap_pdbSecondaryStructureSheet_initICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixClass", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbSecondaryStructureHelixClass","helixClass", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
   } 
-  arg2 = (pdbSecondaryStructureHelixClass)(val2);
-  if (arg1) (arg1)->helixClass = arg2;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->initICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24682,23 +26537,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_helixClass_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_initICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbSecondaryStructureHelixClass result;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","helixClass", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (pdbSecondaryStructureHelixClass) ((arg1)->helixClass);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char) ((arg1)->initICode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24706,8 +26561,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_comment_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_endResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24718,22 +26573,22 @@ _wrap_pdbSecondaryStructureHelix_comment_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","comment", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->comment) free((char*)arg1->comment);
+  if (arg1->endResName) free((char*)arg1->endResName);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->comment = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->comment = 0;
+    arg1->endResName = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -24744,8 +26599,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_comment_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_endResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -24754,12 +26609,12 @@ _wrap_pdbSecondaryStructureHelix_comment_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (char *) ((arg1)->comment);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char *) ((arg1)->endResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -24768,28 +26623,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_length_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
-  int arg2 ;
+_wrap_pdbSecondaryStructureSheet_endChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","length", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","length", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->length = arg2;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24797,70 +26652,31 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_length_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *arg1 = (struct pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbSecondaryStructureSheet_endChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureHelix *","length", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureHelix *)(argp1);
-  result = (int) ((arg1)->length);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char) ((arg1)->endChainID);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureHelix_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_pdbSecondaryStructureHelix_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureHelix);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_pdbSecondaryStructureHelix(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureHelix *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct pdbSecondaryStructureHelix *)calloc(1, sizeof(struct pdbSecondaryStructureHelix));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_pdbSecondaryStructureHelix(struct pdbSecondaryStructureHelix *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassPdbSecondaryStructureSheet;
-
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_strand_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -24873,15 +26689,15 @@ _wrap_pdbSecondaryStructureSheet_strand_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","strand", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endSeqNum", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","strand", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->strand = arg2;
+  if (arg1) (arg1)->endSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -24889,7 +26705,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_strand_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24901,10 +26717,10 @@ _wrap_pdbSecondaryStructureSheet_strand_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","strand", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endSeqNum", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->strand);
+  result = (int) ((arg1)->endSeqNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -24913,49 +26729,40 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_sheetID_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_endICode_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
-  char *arg2 = (char *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sheetID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","sheetID", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->sheetID) free((char*)arg1->sheetID);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->sheetID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->sheetID = 0;
-  }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
+  } 
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endICode = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_sheetID_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_endICode_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -24963,11 +26770,11 @@ _wrap_pdbSecondaryStructureSheet_sheetID_get(int argc, VALUE *argv, VALUE self)
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sheetID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->sheetID);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  result = (char) ((arg1)->endICode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -24975,7 +26782,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_numStrands_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_sense_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -24988,15 +26795,15 @@ _wrap_pdbSecondaryStructureSheet_numStrands_set(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","numStrands", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sense", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","numStrands", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","sense", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->numStrands = arg2;
+  if (arg1) (arg1)->sense = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25004,7 +26811,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_numStrands_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_sense_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25016,10 +26823,10 @@ _wrap_pdbSecondaryStructureSheet_numStrands_get(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","numStrands", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sense", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->numStrands);
+  result = (int) ((arg1)->sense);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -25028,7 +26835,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initResName_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curAtom_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -25042,20 +26849,20 @@ _wrap_pdbSecondaryStructureSheet_initResName_set(int argc, VALUE *argv, VALUE se
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curAtom", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","curAtom", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->initResName) free((char*)arg1->initResName);
+  if (arg1->curAtom) free((char*)arg1->curAtom);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->curAtom = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->initResName = 0;
+    arg1->curAtom = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -25066,7 +26873,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initResName_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curAtom_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25078,10 +26885,10 @@ _wrap_pdbSecondaryStructureSheet_initResName_get(int argc, VALUE *argv, VALUE se
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curAtom", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->initResName);
+  result = (char *) ((arg1)->curAtom);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -25090,7 +26897,69 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initChainID_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResName", 1, self )); 
+  }
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","curResName", 2, argv[0] ));
+  }
+  arg2 = (char *)(buf2);
+  if (arg1->curResName) free((char*)arg1->curResName);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->curResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->curResName = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_curResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResName", 1, self )); 
+  }
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char *) ((arg1)->curResName);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_curChainID_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
@@ -25103,15 +26972,15 @@ _wrap_pdbSecondaryStructureSheet_initChainID_set(int argc, VALUE *argv, VALUE se
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curChainID", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","curChainID", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->initChainID = arg2;
+  if (arg1) (arg1)->curChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25119,7 +26988,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initChainID_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curChainID_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25131,10 +27000,10 @@ _wrap_pdbSecondaryStructureSheet_initChainID_get(int argc, VALUE *argv, VALUE se
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curChainID", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->initChainID);
+  result = (char) ((arg1)->curChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25143,7 +27012,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curResSeq_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -25156,15 +27025,15 @@ _wrap_pdbSecondaryStructureSheet_initSeqNum_set(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResSeq", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","curResSeq", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->initSeqNum = arg2;
+  if (arg1) (arg1)->curResSeq = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25172,7 +27041,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curResSeq_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25184,10 +27053,10 @@ _wrap_pdbSecondaryStructureSheet_initSeqNum_get(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResSeq", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->initSeqNum);
+  result = (int) ((arg1)->curResSeq);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -25196,7 +27065,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initICode_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curICode_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
@@ -25209,15 +27078,15 @@ _wrap_pdbSecondaryStructureSheet_initICode_set(int argc, VALUE *argv, VALUE self
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","curICode", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->initICode = arg2;
+  if (arg1) (arg1)->curICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25225,7 +27094,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_initICode_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_curICode_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25237,10 +27106,10 @@ _wrap_pdbSecondaryStructureSheet_initICode_get(int argc, VALUE *argv, VALUE self
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->initICode);
+  result = (char) ((arg1)->curICode);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25249,7 +27118,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endResName_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevAtom_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -25263,20 +27132,20 @@ _wrap_pdbSecondaryStructureSheet_endResName_set(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevAtom", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","prevAtom", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->endResName) free((char*)arg1->endResName);
+  if (arg1->prevAtom) free((char*)arg1->prevAtom);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->prevAtom = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->endResName = 0;
+    arg1->prevAtom = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -25287,7 +27156,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endResName_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevAtom_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25299,10 +27168,10 @@ _wrap_pdbSecondaryStructureSheet_endResName_get(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevAtom", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->endResName);
+  result = (char *) ((arg1)->prevAtom);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -25311,7 +27180,69 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endChainID_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResName", 1, self )); 
+  }
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","prevResName", 2, argv[0] ));
+  }
+  arg2 = (char *)(buf2);
+  if (arg1->prevResName) free((char*)arg1->prevResName);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->prevResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->prevResName = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_prevResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  char *result = 0 ;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResName", 1, self )); 
+  }
+  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  result = (char *) ((arg1)->prevResName);
+  vresult = SWIG_FromCharPtr((const char *)result);
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_prevChainID_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
@@ -25324,15 +27255,15 @@ _wrap_pdbSecondaryStructureSheet_endChainID_set(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevChainID", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","prevChainID", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->endChainID = arg2;
+  if (arg1) (arg1)->prevChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25340,7 +27271,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endChainID_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevChainID_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25352,10 +27283,10 @@ _wrap_pdbSecondaryStructureSheet_endChainID_get(int argc, VALUE *argv, VALUE sel
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevChainID", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->endChainID);
+  result = (char) ((arg1)->prevChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25364,7 +27295,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevResSeq_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
@@ -25377,15 +27308,15 @@ _wrap_pdbSecondaryStructureSheet_endSeqNum_set(int argc, VALUE *argv, VALUE self
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResSeq", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","prevResSeq", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->endSeqNum = arg2;
+  if (arg1) (arg1)->prevResSeq = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25393,7 +27324,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevResSeq_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25405,10 +27336,10 @@ _wrap_pdbSecondaryStructureSheet_endSeqNum_get(int argc, VALUE *argv, VALUE self
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResSeq", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->endSeqNum);
+  result = (int) ((arg1)->prevResSeq);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -25417,7 +27348,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endICode_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevICode_set(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
@@ -25430,15 +27361,15 @@ _wrap_pdbSecondaryStructureSheet_endICode_set(int argc, VALUE *argv, VALUE self)
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","prevICode", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->endICode = arg2;
+  if (arg1) (arg1)->prevICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25446,7 +27377,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_endICode_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbSecondaryStructureSheet_prevICode_get(int argc, VALUE *argv, VALUE self) {
   struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25458,10 +27389,10 @@ _wrap_pdbSecondaryStructureSheet_endICode_get(int argc, VALUE *argv, VALUE self)
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevICode", 1, self )); 
   }
   arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->endICode);
+  result = (char) ((arg1)->prevICode);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25469,9 +27400,48 @@ fail:
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
+SWIGINTERN VALUE
+_wrap_pdbSecondaryStructureSheet_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_pdbSecondaryStructureSheet_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureSheet);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
+  }
+  
+
+SWIGINTERN VALUE
+_wrap_new_pdbSecondaryStructureSheet(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureSheet *result = 0 ;
+  
+  if ((argc < 0) || (argc > 0)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
+  }
+  result = (struct pdbSecondaryStructureSheet *)calloc(1, sizeof(struct pdbSecondaryStructureSheet));
+  DATA_PTR(self) = result;
+  return self;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN void
+free_pdbSecondaryStructureSheet(struct pdbSecondaryStructureSheet *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassPdbSecondaryStructureTurn;
+
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_sense_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_serNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25481,17 +27451,17 @@ _wrap_pdbSecondaryStructureSheet_sense_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sense", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","serNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","sense", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","serNum", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->sense = arg2;
+  if (arg1) (arg1)->serNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25499,8 +27469,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_sense_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_serNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -25509,12 +27479,12 @@ _wrap_pdbSecondaryStructureSheet_sense_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","sense", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","serNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->sense);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (int) ((arg1)->serNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -25523,8 +27493,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curAtom_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_turnID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25535,22 +27505,22 @@ _wrap_pdbSecondaryStructureSheet_curAtom_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curAtom", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","turnID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","curAtom", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","turnID", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->curAtom) free((char*)arg1->curAtom);
+  if (arg1->turnID) free((char*)arg1->turnID);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->curAtom = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->turnID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->curAtom = 0;
+    arg1->turnID = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -25561,8 +27531,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curAtom_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_turnID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -25571,12 +27541,12 @@ _wrap_pdbSecondaryStructureSheet_curAtom_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curAtom", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","turnID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->curAtom);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char *) ((arg1)->turnID);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -25585,8 +27555,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25597,22 +27567,22 @@ _wrap_pdbSecondaryStructureSheet_curResName_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","curResName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->curResName) free((char*)arg1->curResName);
+  if (arg1->initResName) free((char*)arg1->initResName);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->curResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->curResName = 0;
+    arg1->initResName = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -25623,8 +27593,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -25633,12 +27603,12 @@ _wrap_pdbSecondaryStructureSheet_curResName_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->curResName);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char *) ((arg1)->initResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -25647,8 +27617,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25658,17 +27628,17 @@ _wrap_pdbSecondaryStructureSheet_curChainID_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","curChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->curChainID = arg2;
+  if (arg1) (arg1)->initChainID = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25676,8 +27646,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -25686,12 +27656,12 @@ _wrap_pdbSecondaryStructureSheet_curChainID_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->curChainID);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char) ((arg1)->initChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25700,8 +27670,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curResSeq_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25711,17 +27681,17 @@ _wrap_pdbSecondaryStructureSheet_curResSeq_set(int argc, VALUE *argv, VALUE self
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResSeq", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","curResSeq", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->curResSeq = arg2;
+  if (arg1) (arg1)->initSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25729,8 +27699,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curResSeq_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -25739,12 +27709,12 @@ _wrap_pdbSecondaryStructureSheet_curResSeq_get(int argc, VALUE *argv, VALUE self
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curResSeq", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->curResSeq);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (int) ((arg1)->initSeqNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -25753,8 +27723,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25764,17 +27734,17 @@ _wrap_pdbSecondaryStructureSheet_curICode_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","curICode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
   } 
   arg2 = (char)(val2);
-  if (arg1) (arg1)->curICode = arg2;
+  if (arg1) (arg1)->initICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25782,8 +27752,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_curICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_initICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -25792,12 +27762,12 @@ _wrap_pdbSecondaryStructureSheet_curICode_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","curICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->curICode);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char) ((arg1)->initICode);
   vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
@@ -25806,8 +27776,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevAtom_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25818,22 +27788,22 @@ _wrap_pdbSecondaryStructureSheet_prevAtom_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevAtom", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","prevAtom", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->prevAtom) free((char*)arg1->prevAtom);
+  if (arg1->endResName) free((char*)arg1->endResName);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->prevAtom = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->prevAtom = 0;
+    arg1->endResName = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -25844,8 +27814,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevAtom_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -25854,12 +27824,12 @@ _wrap_pdbSecondaryStructureSheet_prevAtom_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevAtom", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->prevAtom);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char *) ((arg1)->endResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -25868,61 +27838,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResName", 1, self )); 
-  }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","prevResName", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->prevResName) free((char*)arg1->prevResName);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->prevResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->prevResName = 0;
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endChainID", 1, self )); 
   }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
+  } 
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endChainID = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char *) ((arg1)->prevResName);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char) ((arg1)->endChainID);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -25930,28 +27891,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
-  char arg2 ;
+_wrap_pdbSecondaryStructureTurn_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","prevChainID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
   } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->prevChainID = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->endSeqNum = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -25959,23 +27920,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->prevChainID);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (int) ((arg1)->endSeqNum);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -25983,28 +27944,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevResSeq_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
-  int arg2 ;
+_wrap_pdbSecondaryStructureTurn_endICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+  char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResSeq", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","prevResSeq", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->prevResSeq = arg2;
+  arg2 = (char)(val2);
+  if (arg1) (arg1)->endICode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -26012,23 +27973,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevResSeq_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_endICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  char result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevResSeq", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (int) ((arg1)->prevResSeq);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char) ((arg1)->endICode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -26036,52 +27997,61 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
-  char arg2 ;
+_wrap_pdbSecondaryStructureTurn_comment_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
+  int res2 ;
+  char *buf2 = 0 ;
+  int alloc2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","comment", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","prevICode", 2, argv[0] ));
-  } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->prevICode = arg2;
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","comment", 2, argv[0] ));
+  }
+  arg2 = (char *)(buf2);
+  if (arg1->comment) free((char*)arg1->comment);
+  if (arg2) {
+    size_t size = strlen((const char *)(arg2)) + 1;
+    arg1->comment = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+  } else {
+    arg1->comment = 0;
+  }
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 fail:
+  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_prevICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *arg1 = (struct pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbSecondaryStructureTurn_comment_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  char *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureSheet *","prevICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","comment", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureSheet *)(argp1);
-  result = (char) ((arg1)->prevICode);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  result = (char *) ((arg1)->comment);
+  vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
   return Qnil;
@@ -26090,14 +28060,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureSheet_allocate(VALUE self) {
+_wrap_pdbSecondaryStructureTurn_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_pdbSecondaryStructureSheet_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_pdbSecondaryStructureTurn_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureSheet);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureTurn);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -26106,13 +28076,13 @@ _wrap_pdbSecondaryStructureSheet_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_pdbSecondaryStructureSheet(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureSheet *result = 0 ;
+_wrap_new_pdbSecondaryStructureTurn(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureTurn *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct pdbSecondaryStructureSheet *)calloc(1, sizeof(struct pdbSecondaryStructureSheet));
+  result = (struct pdbSecondaryStructureTurn *)calloc(1, sizeof(struct pdbSecondaryStructureTurn));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -26121,15 +28091,15 @@ fail:
 
 
 SWIGINTERN void
-free_pdbSecondaryStructureSheet(struct pdbSecondaryStructureSheet *arg1) {
+free_pdbSecondaryStructureTurn(struct pdbSecondaryStructureTurn *arg1) {
     free((char *) arg1);
 }
 
-static swig_class SwigClassPdbSecondaryStructureTurn;
+static swig_class SwigClassPdbSecondaryStructureNo;
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_serNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_serNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26139,11 +28109,11 @@ _wrap_pdbSecondaryStructureTurn_serNum_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","serNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","serNum", 2, argv[0] ));
@@ -26157,8 +28127,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_serNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_serNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -26167,11 +28137,11 @@ _wrap_pdbSecondaryStructureTurn_serNum_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","serNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (int) ((arg1)->serNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
@@ -26181,8 +28151,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_turnID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_noID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26193,22 +28163,22 @@ _wrap_pdbSecondaryStructureTurn_turnID_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","turnID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","noID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","turnID", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","noID", 2, argv[0] ));
   }
   arg2 = (char *)(buf2);
-  if (arg1->turnID) free((char*)arg1->turnID);
+  if (arg1->noID) free((char*)arg1->noID);
   if (arg2) {
     size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->turnID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
+    arg1->noID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
   } else {
-    arg1->turnID = 0;
+    arg1->noID = 0;
   }
   if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
@@ -26219,8 +28189,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_turnID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_noID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -26229,12 +28199,12 @@ _wrap_pdbSecondaryStructureTurn_turnID_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","turnID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","noID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
-  result = (char *) ((arg1)->turnID);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
+  result = (char *) ((arg1)->noID);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
 fail:
@@ -26243,8 +28213,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26255,11 +28225,11 @@ _wrap_pdbSecondaryStructureTurn_initResName_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
@@ -26281,8 +28251,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -26291,11 +28261,11 @@ _wrap_pdbSecondaryStructureTurn_initResName_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char *) ((arg1)->initResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
@@ -26305,8 +28275,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26316,11 +28286,11 @@ _wrap_pdbSecondaryStructureTurn_initChainID_set(int argc, VALUE *argv, VALUE sel
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
@@ -26334,8 +28304,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -26344,11 +28314,11 @@ _wrap_pdbSecondaryStructureTurn_initChainID_get(int argc, VALUE *argv, VALUE sel
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char) ((arg1)->initChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
@@ -26358,8 +28328,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26369,11 +28339,11 @@ _wrap_pdbSecondaryStructureTurn_initSeqNum_set(int argc, VALUE *argv, VALUE self
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
@@ -26387,8 +28357,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -26397,11 +28367,11 @@ _wrap_pdbSecondaryStructureTurn_initSeqNum_get(int argc, VALUE *argv, VALUE self
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (int) ((arg1)->initSeqNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
@@ -26411,8 +28381,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26422,11 +28392,11 @@ _wrap_pdbSecondaryStructureTurn_initICode_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
@@ -26440,8 +28410,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_initICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_initICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -26450,11 +28420,11 @@ _wrap_pdbSecondaryStructureTurn_initICode_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char) ((arg1)->initICode);
   vresult = SWIG_From_char((char)(result));
   return vresult;
@@ -26464,8 +28434,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endResName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26476,11 +28446,11 @@ _wrap_pdbSecondaryStructureTurn_endResName_set(int argc, VALUE *argv, VALUE self
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
@@ -26502,8 +28472,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endResName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -26512,11 +28482,11 @@ _wrap_pdbSecondaryStructureTurn_endResName_get(int argc, VALUE *argv, VALUE self
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endResName", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char *) ((arg1)->endResName);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
@@ -26526,8 +28496,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endChainID_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26537,11 +28507,11 @@ _wrap_pdbSecondaryStructureTurn_endChainID_set(int argc, VALUE *argv, VALUE self
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
@@ -26555,8 +28525,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endChainID_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -26565,11 +28535,11 @@ _wrap_pdbSecondaryStructureTurn_endChainID_get(int argc, VALUE *argv, VALUE self
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endChainID", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char) ((arg1)->endChainID);
   vresult = SWIG_From_char((char)(result));
   return vresult;
@@ -26579,8 +28549,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26590,11 +28560,11 @@ _wrap_pdbSecondaryStructureTurn_endSeqNum_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
@@ -26608,8 +28578,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -26618,11 +28588,11 @@ _wrap_pdbSecondaryStructureTurn_endSeqNum_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endSeqNum", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (int) ((arg1)->endSeqNum);
   vresult = SWIG_From_int((int)(result));
   return vresult;
@@ -26632,8 +28602,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endICode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26643,11 +28613,11 @@ _wrap_pdbSecondaryStructureTurn_endICode_set(int argc, VALUE *argv, VALUE self)
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
@@ -26661,8 +28631,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_endICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_endICode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char result;
@@ -26671,11 +28641,11 @@ _wrap_pdbSecondaryStructureTurn_endICode_get(int argc, VALUE *argv, VALUE self)
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endICode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char) ((arg1)->endICode);
   vresult = SWIG_From_char((char)(result));
   return vresult;
@@ -26685,8 +28655,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_comment_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_comment_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26697,11 +28667,11 @@ _wrap_pdbSecondaryStructureTurn_comment_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","comment", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","comment", 2, argv[0] ));
@@ -26723,8 +28693,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_comment_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *arg1 = (struct pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbSecondaryStructureNo_comment_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   char *result = 0 ;
@@ -26733,11 +28703,11 @@ _wrap_pdbSecondaryStructureTurn_comment_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureTurn *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","comment", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureTurn *)(argp1);
+  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
   result = (char *) ((arg1)->comment);
   vresult = SWIG_FromCharPtr((const char *)result);
   return vresult;
@@ -26748,14 +28718,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureTurn_allocate(VALUE self) {
+_wrap_pdbSecondaryStructureNo_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_pdbSecondaryStructureTurn_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_pdbSecondaryStructureNo_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureTurn);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureNo);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -26764,13 +28734,13 @@ _wrap_pdbSecondaryStructureTurn_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_pdbSecondaryStructureTurn(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureTurn *result = 0 ;
+_wrap_new_pdbSecondaryStructureNo(int argc, VALUE *argv, VALUE self) {
+  struct pdbSecondaryStructureNo *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct pdbSecondaryStructureTurn *)calloc(1, sizeof(struct pdbSecondaryStructureTurn));
+  result = (struct pdbSecondaryStructureNo *)calloc(1, sizeof(struct pdbSecondaryStructureNo));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -26779,16 +28749,16 @@ fail:
 
 
 SWIGINTERN void
-free_pdbSecondaryStructureTurn(struct pdbSecondaryStructureTurn *arg1) {
+free_pdbSecondaryStructureNo(struct pdbSecondaryStructureNo *arg1) {
     free((char *) arg1);
 }
 
-static swig_class SwigClassPdbSecondaryStructureNo;
+static swig_class SwigClassPdbFileSecondaryStructureRecord;
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_serNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  int arg2 ;
+_wrap_pdbFileSecondaryStructureRecord_mode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbFileSecondaryStructureMode arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int val2 ;
@@ -26797,17 +28767,17 @@ _wrap_pdbSecondaryStructureNo_serNum_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","mode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","serNum", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureMode","mode", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->serNum = arg2;
+  arg2 = (pdbFileSecondaryStructureMode)(val2);
+  if (arg1) (arg1)->mode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -26815,22 +28785,22 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_serNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_mode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  pdbFileSecondaryStructureMode result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","serNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","mode", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (int) ((arg1)->serNum);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbFileSecondaryStructureMode) ((arg1)->mode);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -26839,61 +28809,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_noID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_helix_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbSecondaryStructureHelix *arg2 = (pdbSecondaryStructureHelix *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","noID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","helix", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureHelix, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","noID", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->noID) free((char*)arg1->noID);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->noID = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->noID = 0;
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureHelix *","helix", 2, argv[0] )); 
   }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg2 = (pdbSecondaryStructureHelix *)(argp2);
+  if (arg1) (arg1)->helix = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_noID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_helix_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  pdbSecondaryStructureHelix *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","noID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","helix", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char *) ((arg1)->noID);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbSecondaryStructureHelix *) ((arg1)->helix);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -26901,61 +28862,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_sheet_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbSecondaryStructureSheet *arg2 = (pdbSecondaryStructureSheet *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","sheet", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureSheet, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","initResName", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->initResName) free((char*)arg1->initResName);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->initResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->initResName = 0;
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureSheet *","sheet", 2, argv[0] )); 
   }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg2 = (pdbSecondaryStructureSheet *)(argp2);
+  if (arg1) (arg1)->sheet = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_sheet_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  pdbSecondaryStructureSheet *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","sheet", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char *) ((arg1)->initResName);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbSecondaryStructureSheet *) ((arg1)->sheet);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -26963,28 +28915,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char arg2 ;
+_wrap_pdbFileSecondaryStructureRecord_turn_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbSecondaryStructureTurn *arg2 = (pdbSecondaryStructureTurn *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","turn", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initChainID", 2, argv[0] ));
-  } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->initChainID = arg2;
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureTurn, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureTurn *","turn", 2, argv[0] )); 
+  }
+  arg2 = (pdbSecondaryStructureTurn *)(argp2);
+  if (arg1) (arg1)->turn = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -26992,23 +28944,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_turn_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  pdbSecondaryStructureTurn *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initChainID", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","turn", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char) ((arg1)->initChainID);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbSecondaryStructureTurn *) ((arg1)->turn);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27016,28 +28968,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  int arg2 ;
+_wrap_pdbFileSecondaryStructureRecord_no_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbSecondaryStructureNo *arg2 = (pdbSecondaryStructureNo *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","no", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","initSeqNum", 2, argv[0] ));
-  } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->initSeqNum = arg2;
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureNo, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureNo *","no", 2, argv[0] )); 
+  }
+  arg2 = (pdbSecondaryStructureNo *)(argp2);
+  if (arg1) (arg1)->no = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27045,23 +28997,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_no_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  pdbSecondaryStructureNo *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","no", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (int) ((arg1)->initSeqNum);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbSecondaryStructureNo *) ((arg1)->no);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27069,28 +29021,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char arg2 ;
+_wrap_pdbFileSecondaryStructureRecord_prev_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","prev", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","initICode", 2, argv[0] ));
-  } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->initICode = arg2;
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","prev", 2, argv[0] )); 
+  }
+  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
+  if (arg1) (arg1)->prev = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27098,23 +29050,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_initICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_prev_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  pdbFileSecondaryStructureRecord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","initICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","prev", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char) ((arg1)->initICode);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbFileSecondaryStructureRecord *) ((arg1)->prev);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27122,123 +29074,100 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endResName_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_next_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","next", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","endResName", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->endResName) free((char*)arg1->endResName);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->endResName = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->endResName = 0;
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","next", 2, argv[0] )); 
   }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
+  if (arg1) (arg1)->next = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endResName_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructureRecord_next_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  pdbFileSecondaryStructureRecord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endResName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","next", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char *) ((arg1)->endResName);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
+  result = (pdbFileSecondaryStructureRecord *) ((arg1)->next);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
 }
 
 
+#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endChainID_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
-  
-  if ((argc < 1) || (argc > 1)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
-  }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endChainID", 1, self )); 
+_wrap_pdbFileSecondaryStructureRecord_allocate(VALUE self) {
+#else
+  SWIGINTERN VALUE
+  _wrap_pdbFileSecondaryStructureRecord_allocate(int argc, VALUE *argv, VALUE self) {
+#endif
+    
+    
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbFileSecondaryStructureRecord);
+#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
+    rb_obj_call_init(vresult, argc, argv);
+#endif
+    return vresult;
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endChainID", 2, argv[0] ));
-  } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->endChainID = arg2;
-  return Qnil;
-fail:
-  return Qnil;
-}
-
+  
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endChainID_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  char result;
-  VALUE vresult = Qnil;
+_wrap_new_pdbFileSecondaryStructureRecord(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructureRecord *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endChainID", 1, self )); 
-  }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char) ((arg1)->endChainID);
-  vresult = SWIG_From_char((char)(result));
-  return vresult;
+  result = (struct pdbFileSecondaryStructureRecord *)calloc(1, sizeof(struct pdbFileSecondaryStructureRecord));
+  DATA_PTR(self) = result;
+  return self;
 fail:
   return Qnil;
 }
 
 
+SWIGINTERN void
+free_pdbFileSecondaryStructureRecord(struct pdbFileSecondaryStructureRecord *arg1) {
+    free((char *) arg1);
+}
+
+static swig_class SwigClassPdbFileSecondaryStructure;
+
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructure_nSecondaryStructure_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27248,17 +29177,17 @@ _wrap_pdbSecondaryStructureNo_endSeqNum_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","nSecondaryStructure", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
   ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","endSeqNum", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","nSecondaryStructure", 2, argv[0] ));
   } 
   arg2 = (int)(val2);
-  if (arg1) (arg1)->endSeqNum = arg2;
+  if (arg1) (arg1)->nSecondaryStructure = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27266,8 +29195,8 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructure_nSecondaryStructure_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   int result;
@@ -27276,12 +29205,12 @@ _wrap_pdbSecondaryStructureNo_endSeqNum_get(int argc, VALUE *argv, VALUE self) {
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endSeqNum", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","nSecondaryStructure", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (int) ((arg1)->endSeqNum);
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
+  result = (int) ((arg1)->nSecondaryStructure);
   vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
@@ -27290,28 +29219,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endICode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char arg2 ;
+_wrap_pdbFileSecondaryStructure_top_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
+  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","top", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "char","endICode", 2, argv[0] ));
-  } 
-  arg2 = (char)(val2);
-  if (arg1) (arg1)->endICode = arg2;
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","top", 2, argv[0] )); 
+  }
+  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
+  if (arg1) (arg1)->top = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27319,23 +29248,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_endICode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructure_top_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char result;
+  pdbFileSecondaryStructureRecord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","endICode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","top", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char) ((arg1)->endICode);
-  vresult = SWIG_From_char((char)(result));
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
+  result = (pdbFileSecondaryStructureRecord *) ((arg1)->top);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27343,61 +29272,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_comment_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
-  char *arg2 = (char *) 0 ;
+_wrap_pdbFileSecondaryStructure_SecondaryStructure_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
+  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int res2 ;
-  char *buf2 = 0 ;
-  int alloc2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","SecondaryStructure", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  res2 = SWIG_AsCharPtrAndSize(argv[0], &buf2, NULL, &alloc2);
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char *","comment", 2, argv[0] ));
-  }
-  arg2 = (char *)(buf2);
-  if (arg1->comment) free((char*)arg1->comment);
-  if (arg2) {
-    size_t size = strlen((const char *)(arg2)) + 1;
-    arg1->comment = (char *)(char *)memcpy((char *)malloc((size)*sizeof(char)), (const char *)(arg2), sizeof(char)*(size));
-  } else {
-    arg1->comment = 0;
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","SecondaryStructure", 2, argv[0] )); 
   }
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
+  if (arg1) (arg1)->SecondaryStructure = arg2;
   return Qnil;
 fail:
-  if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
   return Qnil;
 }
 
 
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_comment_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *arg1 = (struct pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbFileSecondaryStructure_SecondaryStructure_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char *result = 0 ;
+  pdbFileSecondaryStructureRecord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbSecondaryStructureNo *","comment", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","SecondaryStructure", 1, self )); 
   }
-  arg1 = (struct pdbSecondaryStructureNo *)(argp1);
-  result = (char *) ((arg1)->comment);
-  vresult = SWIG_FromCharPtr((const char *)result);
+  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
+  result = (pdbFileSecondaryStructureRecord *) ((arg1)->SecondaryStructure);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27406,14 +29326,14 @@ fail:
 
 #ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbSecondaryStructureNo_allocate(VALUE self) {
+_wrap_pdbFileSecondaryStructure_allocate(VALUE self) {
 #else
   SWIGINTERN VALUE
-  _wrap_pdbSecondaryStructureNo_allocate(int argc, VALUE *argv, VALUE self) {
+  _wrap_pdbFileSecondaryStructure_allocate(int argc, VALUE *argv, VALUE self) {
 #endif
     
     
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbSecondaryStructureNo);
+    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbFileSecondaryStructure);
 #ifndef HAVE_RB_DEFINE_ALLOC_FUNC
     rb_obj_call_init(vresult, argc, argv);
 #endif
@@ -27422,13 +29342,13 @@ _wrap_pdbSecondaryStructureNo_allocate(VALUE self) {
   
 
 SWIGINTERN VALUE
-_wrap_new_pdbSecondaryStructureNo(int argc, VALUE *argv, VALUE self) {
-  struct pdbSecondaryStructureNo *result = 0 ;
+_wrap_new_pdbFileSecondaryStructure(int argc, VALUE *argv, VALUE self) {
+  struct pdbFileSecondaryStructure *result = 0 ;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct pdbSecondaryStructureNo *)calloc(1, sizeof(struct pdbSecondaryStructureNo));
+  result = (struct pdbFileSecondaryStructure *)calloc(1, sizeof(struct pdbFileSecondaryStructure));
   DATA_PTR(self) = result;
   return self;
 fail:
@@ -27437,35 +29357,36 @@ fail:
 
 
 SWIGINTERN void
-free_pdbSecondaryStructureNo(struct pdbSecondaryStructureNo *arg1) {
+free_pdbFileSecondaryStructure(struct pdbFileSecondaryStructure *arg1) {
     free((char *) arg1);
 }
 
-static swig_class SwigClassPdbFileSecondaryStructureRecord;
+static swig_class SwigClassPdbRecord;
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_mode_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbFileSecondaryStructureMode arg2 ;
+_wrap_pdbRecord_FullRecord_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
+  char temp2[(80) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FullRecord", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureMode","mode", 2, argv[0] ));
-  } 
-  arg2 = (pdbFileSecondaryStructureMode)(val2);
-  if (arg1) (arg1)->mode = arg2;
+  arg1 = (struct pdbRecord *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, (80) +1);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(80) +1]","FullRecord", 2, argv[0] ));
+  }
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->FullRecord,arg2,(80) +1*sizeof(char));
+  else memset(arg1->FullRecord,0,(80) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -27473,23 +29394,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_mode_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_FullRecord_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileSecondaryStructureMode result;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","mode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FullRecord", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->FullRecord);
+  {
+    size_t size = (80) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbFileSecondaryStructureMode) ((arg1)->mode);
-  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -27497,28 +29424,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_helix_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbSecondaryStructureHelix *arg2 = (pdbSecondaryStructureHelix *) 0 ;
+_wrap_pdbRecord_Record_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  char temp2[(6) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","helix", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Record", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureHelix, SWIG_POINTER_DISOWN |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, (6) +1);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureHelix *","helix", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(6) +1]","Record", 2, argv[0] ));
   }
-  arg2 = (pdbSecondaryStructureHelix *)(argp2);
-  if (arg1) (arg1)->helix = arg2;
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->Record,arg2,(6) +1*sizeof(char));
+  else memset(arg1->Record,0,(6) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -27526,23 +29454,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_helix_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_Record_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbSecondaryStructureHelix *result = 0 ;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","helix", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Record", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Record);
+  {
+    size_t size = (6) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbSecondaryStructureHelix *) ((arg1)->helix);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureHelix, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27550,28 +29484,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_sheet_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbSecondaryStructureSheet *arg2 = (pdbSecondaryStructureSheet *) 0 ;
+_wrap_pdbRecord_AtomSerialNumber_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeInteger arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","sheet", 1, self )); 
-  }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureSheet, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureSheet *","sheet", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomSerialNumber", 1, self )); 
   }
-  arg2 = (pdbSecondaryStructureSheet *)(argp2);
-  if (arg1) (arg1)->sheet = arg2;
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","AtomSerialNumber", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeInteger)(val2);
+  if (arg1) (arg1)->AtomSerialNumber = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27579,23 +29513,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_sheet_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_AtomSerialNumber_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbSecondaryStructureSheet *result = 0 ;
+  pdbFileParaTypeInteger result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","sheet", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomSerialNumber", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbSecondaryStructureSheet *) ((arg1)->sheet);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureSheet, 0 |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeInteger) ((arg1)->AtomSerialNumber);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -27603,28 +29537,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_turn_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbSecondaryStructureTurn *arg2 = (pdbSecondaryStructureTurn *) 0 ;
+_wrap_pdbRecord_AtomName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  char temp2[(4) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","turn", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomName", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureTurn, SWIG_POINTER_DISOWN |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, (4) +1);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureTurn *","turn", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(4) +1]","AtomName", 2, argv[0] ));
   }
-  arg2 = (pdbSecondaryStructureTurn *)(argp2);
-  if (arg1) (arg1)->turn = arg2;
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->AtomName,arg2,(4) +1*sizeof(char));
+  else memset(arg1->AtomName,0,(4) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -27632,23 +29567,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_turn_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_AtomName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbSecondaryStructureTurn *result = 0 ;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","turn", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomName", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->AtomName);
+  {
+    size_t size = (4) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbSecondaryStructureTurn *) ((arg1)->turn);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureTurn, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27656,28 +29597,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_no_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbSecondaryStructureNo *arg2 = (pdbSecondaryStructureNo *) 0 ;
+_wrap_pdbRecord_LocationIndicator_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","no", 1, self )); 
-  }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbSecondaryStructureNo, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbSecondaryStructureNo *","no", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","LocationIndicator", 1, self )); 
   }
-  arg2 = (pdbSecondaryStructureNo *)(argp2);
-  if (arg1) (arg1)->no = arg2;
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","LocationIndicator", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeCharacter)(val2);
+  if (arg1) (arg1)->LocationIndicator = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27685,23 +29626,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_no_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_LocationIndicator_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbSecondaryStructureNo *result = 0 ;
+  pdbFileParaTypeCharacter result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","no", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","LocationIndicator", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbSecondaryStructureNo *) ((arg1)->no);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbSecondaryStructureNo, 0 |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter) ((arg1)->LocationIndicator);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -27709,28 +29650,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_prev_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_ResidueName_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  char temp2[(3) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","prev", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueName", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, (3) +1);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","prev", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(3) +1]","ResidueName", 2, argv[0] ));
   }
-  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
-  if (arg1) (arg1)->prev = arg2;
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->ResidueName,arg2,(3) +1*sizeof(char));
+  else memset(arg1->ResidueName,0,(3) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -27738,23 +29680,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_prev_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_ResidueName_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileSecondaryStructureRecord *result = 0 ;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","prev", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueName", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->ResidueName);
+  {
+    size_t size = (3) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbFileSecondaryStructureRecord *) ((arg1)->prev);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27762,28 +29710,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_next_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
-  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_ChainIdentifier_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  char val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","next", 1, self )); 
-  }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","next", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ChainIdentifier", 1, self )); 
   }
-  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
-  if (arg1) (arg1)->next = arg2;
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","ChainIdentifier", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeCharacter)(val2);
+  if (arg1) (arg1)->ChainIdentifier = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27791,91 +29739,105 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_next_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *arg1 = (struct pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_ChainIdentifier_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileSecondaryStructureRecord *result = 0 ;
+  pdbFileParaTypeCharacter result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructureRecord *","next", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ChainIdentifier", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructureRecord *)(argp1);
-  result = (pdbFileSecondaryStructureRecord *) ((arg1)->next);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter) ((arg1)->ChainIdentifier);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructureRecord_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_pdbFileSecondaryStructureRecord_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbFileSecondaryStructureRecord);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
+_wrap_pdbRecord_ResidueSequenceNumber_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeInteger arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueSequenceNumber", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","ResidueSequenceNumber", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeInteger)(val2);
+  if (arg1) (arg1)->ResidueSequenceNumber = arg2;
+  return Qnil;
+fail:
+  return Qnil;
+}
+
 
 SWIGINTERN VALUE
-_wrap_new_pdbFileSecondaryStructureRecord(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructureRecord *result = 0 ;
+_wrap_pdbRecord_ResidueSequenceNumber_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  pdbFileParaTypeInteger result;
+  VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  result = (struct pdbFileSecondaryStructureRecord *)calloc(1, sizeof(struct pdbFileSecondaryStructureRecord));
-  DATA_PTR(self) = result;
-  return self;
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueSequenceNumber", 1, self )); 
+  }
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeInteger) ((arg1)->ResidueSequenceNumber);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
 fail:
   return Qnil;
 }
 
 
-SWIGINTERN void
-free_pdbFileSecondaryStructureRecord(struct pdbFileSecondaryStructureRecord *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassPdbFileSecondaryStructure;
-
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_nSecondaryStructure_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
-  int arg2 ;
+_wrap_pdbRecord_InsertionCode_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeCharacter arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
+  char val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","nSecondaryStructure", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","InsertionCode", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  ecode2 = SWIG_AsVal_int(argv[0], &val2);
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_char(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","nSecondaryStructure", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","InsertionCode", 2, argv[0] ));
   } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->nSecondaryStructure = arg2;
+  arg2 = (pdbFileParaTypeCharacter)(val2);
+  if (arg1) (arg1)->InsertionCode = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27883,23 +29845,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_nSecondaryStructure_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
+_wrap_pdbRecord_InsertionCode_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int result;
+  pdbFileParaTypeCharacter result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","nSecondaryStructure", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","InsertionCode", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  result = (int) ((arg1)->nSecondaryStructure);
-  vresult = SWIG_From_int((int)(result));
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeCharacter) ((arg1)->InsertionCode);
+  vresult = SWIG_From_char((char)(result));
   return vresult;
 fail:
   return Qnil;
@@ -27907,9 +29869,9 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_top_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
-  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_Coord_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbCoord *arg2 = (pdbCoord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   void *argp2 = 0 ;
@@ -27918,17 +29880,17 @@ _wrap_pdbFileSecondaryStructure_top_set(int argc, VALUE *argv, VALUE self) {
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","top", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Coord", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbCoord, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","top", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbCoord *","Coord", 2, argv[0] )); 
   }
-  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
-  if (arg1) (arg1)->top = arg2;
+  arg2 = (pdbCoord *)(argp2);
+  if (arg1) (arg1)->Coord = *arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27936,23 +29898,23 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_top_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
+_wrap_pdbRecord_Coord_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileSecondaryStructureRecord *result = 0 ;
+  pdbCoord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","top", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Coord", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  result = (pdbFileSecondaryStructureRecord *) ((arg1)->top);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbCoord *)& ((arg1)->Coord);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbCoord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -27960,28 +29922,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_SecondaryStructure_set(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
-  pdbFileSecondaryStructureRecord *arg2 = (pdbFileSecondaryStructureRecord *) 0 ;
+_wrap_pdbRecord_Occupancy_set(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","SecondaryStructure", 1, self )); 
-  }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbFileSecondaryStructureRecord, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbFileSecondaryStructureRecord *","SecondaryStructure", 2, argv[0] )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Occupancy", 1, self )); 
   }
-  arg2 = (pdbFileSecondaryStructureRecord *)(argp2);
-  if (arg1) (arg1)->SecondaryStructure = arg2;
+  arg1 = (struct pdbRecord *)(argp1);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","Occupancy", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->Occupancy = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -27989,92 +29951,52 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_SecondaryStructure_get(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *arg1 = (struct pdbFileSecondaryStructure *) 0 ;
+_wrap_pdbRecord_Occupancy_get(int argc, VALUE *argv, VALUE self) {
+  struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileSecondaryStructureRecord *result = 0 ;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
   }
-  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbFileSecondaryStructure, 0 |  0 );
+  res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbFileSecondaryStructure *","SecondaryStructure", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Occupancy", 1, self )); 
   }
-  arg1 = (struct pdbFileSecondaryStructure *)(argp1);
-  result = (pdbFileSecondaryStructureRecord *) ((arg1)->SecondaryStructure);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbFileSecondaryStructureRecord, 0 |  0 );
+  arg1 = (struct pdbRecord *)(argp1);
+  result = (pdbFileParaTypeReal) ((arg1)->Occupancy);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
 }
 
 
-#ifdef HAVE_RB_DEFINE_ALLOC_FUNC
-SWIGINTERN VALUE
-_wrap_pdbFileSecondaryStructure_allocate(VALUE self) {
-#else
-  SWIGINTERN VALUE
-  _wrap_pdbFileSecondaryStructure_allocate(int argc, VALUE *argv, VALUE self) {
-#endif
-    
-    
-    VALUE vresult = SWIG_NewClassInstance(self, SWIGTYPE_p_pdbFileSecondaryStructure);
-#ifndef HAVE_RB_DEFINE_ALLOC_FUNC
-    rb_obj_call_init(vresult, argc, argv);
-#endif
-    return vresult;
-  }
-  
-
-SWIGINTERN VALUE
-_wrap_new_pdbFileSecondaryStructure(int argc, VALUE *argv, VALUE self) {
-  struct pdbFileSecondaryStructure *result = 0 ;
-  
-  if ((argc < 0) || (argc > 0)) {
-    rb_raise(rb_eArgError, "wrong # of arguments(%d for 0)",argc); SWIG_fail;
-  }
-  result = (struct pdbFileSecondaryStructure *)calloc(1, sizeof(struct pdbFileSecondaryStructure));
-  DATA_PTR(self) = result;
-  return self;
-fail:
-  return Qnil;
-}
-
-
-SWIGINTERN void
-free_pdbFileSecondaryStructure(struct pdbFileSecondaryStructure *arg1) {
-    free((char *) arg1);
-}
-
-static swig_class SwigClassPdbRecord;
-
 SWIGINTERN VALUE
-_wrap_pdbRecord_FullRecord_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_TemperatureFactor_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter *arg2 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[(80) +1] ;
-  int res2 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FullRecord", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","TemperatureFactor", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, (80) +1);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(80) +1]","FullRecord", 2, argv[0] ));
-  }
-  arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->FullRecord,arg2,(80) +1*sizeof(char));
-  else memset(arg1->FullRecord,0,(80) +1*sizeof(char));
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","TemperatureFactor", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->TemperatureFactor = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28082,11 +30004,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_FullRecord_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_TemperatureFactor_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter *result = 0 ;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28094,17 +30016,11 @@ _wrap_pdbRecord_FullRecord_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FullRecord", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","TemperatureFactor", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->FullRecord);
-  {
-    size_t size = (80) +1;
-    
-    while (size && (result[size - 1] == '\0')) --size;
-    
-    vresult = SWIG_FromCharPtrAndSize(result, size);
-  }
+  result = (pdbFileParaTypeReal) ((arg1)->TemperatureFactor);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28112,29 +30028,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Record_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_FootnoteNumber_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter *arg2 ;
+  pdbFileParaTypeInteger arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[(6) +1] ;
-  int res2 ;
+  long val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Record", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FootnoteNumber", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, (6) +1);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(6) +1]","Record", 2, argv[0] ));
-  }
-  arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->Record,arg2,(6) +1*sizeof(char));
-  else memset(arg1->Record,0,(6) +1*sizeof(char));
+  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","FootnoteNumber", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeInteger)(val2);
+  if (arg1) (arg1)->FootnoteNumber = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28142,11 +30057,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Record_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_FootnoteNumber_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter *result = 0 ;
+  pdbFileParaTypeInteger result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28154,17 +30069,11 @@ _wrap_pdbRecord_Record_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Record", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FootnoteNumber", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Record);
-  {
-    size_t size = (6) +1;
-    
-    while (size && (result[size - 1] == '\0')) --size;
-    
-    vresult = SWIG_FromCharPtrAndSize(result, size);
-  }
+  result = (pdbFileParaTypeInteger) ((arg1)->FootnoteNumber);
+  vresult = SWIG_From_long((long)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28172,28 +30081,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_AtomSerialNumber_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Footnote_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeInteger arg2 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
+  char temp2[(10) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomSerialNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Footnote", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","AtomSerialNumber", 2, argv[0] ));
-  } 
-  arg2 = (pdbFileParaTypeInteger)(val2);
-  if (arg1) (arg1)->AtomSerialNumber = arg2;
+  res2 = SWIG_AsCharArray(argv[0], temp2, (10) +1);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(10) +1]","Footnote", 2, argv[0] ));
+  }
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->Footnote,arg2,(10) +1*sizeof(char));
+  else memset(arg1->Footnote,0,(10) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -28201,11 +30111,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_AtomSerialNumber_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Footnote_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeInteger result;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28213,11 +30123,17 @@ _wrap_pdbRecord_AtomSerialNumber_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomSerialNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Footnote", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeInteger) ((arg1)->AtomSerialNumber);
-  vresult = SWIG_From_long((long)(result));
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Footnote);
+  {
+    size_t size = (10) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
+  }
   return vresult;
 fail:
   return Qnil;
@@ -28225,7 +30141,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_AtomName_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_SegID_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
@@ -28238,16 +30154,16 @@ _wrap_pdbRecord_AtomName_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","SegID", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
   res2 = SWIG_AsCharArray(argv[0], temp2, (4) +1);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(4) +1]","AtomName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(4) +1]","SegID", 2, argv[0] ));
   }
   arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->AtomName,arg2,(4) +1*sizeof(char));
-  else memset(arg1->AtomName,0,(4) +1*sizeof(char));
+  if (arg2) memcpy(arg1->SegID,arg2,(4) +1*sizeof(char));
+  else memset(arg1->SegID,0,(4) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -28255,7 +30171,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_AtomName_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_SegID_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28267,10 +30183,10 @@ _wrap_pdbRecord_AtomName_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","AtomName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","SegID", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->AtomName);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->SegID);
   {
     size_t size = (4) +1;
     
@@ -28285,28 +30201,29 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_LocationIndicator_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Element_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter arg2 ;
+  pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
-  int ecode2 = 0 ;
+  char temp2[(2) +1] ;
+  int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","LocationIndicator", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Element", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","LocationIndicator", 2, argv[0] ));
-  } 
-  arg2 = (pdbFileParaTypeCharacter)(val2);
-  if (arg1) (arg1)->LocationIndicator = arg2;
+  res2 = SWIG_AsCharArray(argv[0], temp2, (2) +1);
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(2) +1]","Element", 2, argv[0] ));
+  }
+  arg2 = (char *)(temp2);
+  if (arg2) memcpy(arg1->Element,arg2,(2) +1*sizeof(char));
+  else memset(arg1->Element,0,(2) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -28314,11 +30231,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_LocationIndicator_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Element_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter result;
+  pdbFileParaTypeCharacter *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28326,11 +30243,17 @@ _wrap_pdbRecord_LocationIndicator_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","LocationIndicator", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Element", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter) ((arg1)->LocationIndicator);
-  vresult = SWIG_From_char((char)(result));
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Element);
+  {
+    size_t size = (2) +1;
+    
+    while (size && (result[size - 1] == '\0')) --size;
+    
+    vresult = SWIG_FromCharPtrAndSize(result, size);
+  }
   return vresult;
 fail:
   return Qnil;
@@ -28338,12 +30261,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ResidueName_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Charge_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   pdbFileParaTypeCharacter *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[(3) +1] ;
+  char temp2[(2) +1] ;
   int res2 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -28351,16 +30274,16 @@ _wrap_pdbRecord_ResidueName_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Charge", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, (3) +1);
+  res2 = SWIG_AsCharArray(argv[0], temp2, (2) +1);
   if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(3) +1]","ResidueName", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(2) +1]","Charge", 2, argv[0] ));
   }
   arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->ResidueName,arg2,(3) +1*sizeof(char));
-  else memset(arg1->ResidueName,0,(3) +1*sizeof(char));
+  if (arg2) memcpy(arg1->Charge,arg2,(2) +1*sizeof(char));
+  else memset(arg1->Charge,0,(2) +1*sizeof(char));
   return Qnil;
 fail:
   return Qnil;
@@ -28368,7 +30291,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ResidueName_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_Charge_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28380,12 +30303,12 @@ _wrap_pdbRecord_ResidueName_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueName", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Charge", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->ResidueName);
+  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Charge);
   {
-    size_t size = (3) +1;
+    size_t size = (2) +1;
     
     while (size && (result[size - 1] == '\0')) --size;
     
@@ -28398,12 +30321,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ChainIdentifier_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_flagANISOU_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter arg2 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
+  int val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -28411,15 +30334,15 @@ _wrap_pdbRecord_ChainIdentifier_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ChainIdentifier", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","flagANISOU", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  ecode2 = SWIG_AsVal_int(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","ChainIdentifier", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "int","flagANISOU", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeCharacter)(val2);
-  if (arg1) (arg1)->ChainIdentifier = arg2;
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->flagANISOU = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28427,11 +30350,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ChainIdentifier_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_flagANISOU_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter result;
+  int result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28439,11 +30362,11 @@ _wrap_pdbRecord_ChainIdentifier_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ChainIdentifier", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","flagANISOU", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter) ((arg1)->ChainIdentifier);
-  vresult = SWIG_From_char((char)(result));
+  result = (int) ((arg1)->flagANISOU);
+  vresult = SWIG_From_int((int)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28451,28 +30374,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ResidueSequenceNumber_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_pAtomforANISOU_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeInteger arg2 ;
+  pdbRecord *arg2 = (pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
-  int ecode2 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueSequenceNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","pAtomforANISOU", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","ResidueSequenceNumber", 2, argv[0] ));
-  } 
-  arg2 = (pdbFileParaTypeInteger)(val2);
-  if (arg1) (arg1)->ResidueSequenceNumber = arg2;
+  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbRecord, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbRecord *","pAtomforANISOU", 2, argv[0] )); 
+  }
+  arg2 = (pdbRecord *)(argp2);
+  if (arg1) (arg1)->pAtomforANISOU = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28480,11 +30403,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_ResidueSequenceNumber_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_pAtomforANISOU_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeInteger result;
+  pdbRecord *result = 0 ;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28492,11 +30415,11 @@ _wrap_pdbRecord_ResidueSequenceNumber_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","ResidueSequenceNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","pAtomforANISOU", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeInteger) ((arg1)->ResidueSequenceNumber);
-  vresult = SWIG_From_long((long)(result));
+  result = (pdbRecord *) ((arg1)->pAtomforANISOU);
+  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbRecord, 0 |  0 );
   return vresult;
 fail:
   return Qnil;
@@ -28504,12 +30427,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_InsertionCode_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U11_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter arg2 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char val2 ;
+  float val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -28517,15 +30440,15 @@ _wrap_pdbRecord_InsertionCode_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","InsertionCode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U11", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_char(argv[0], &val2);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeCharacter","InsertionCode", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U11", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeCharacter)(val2);
-  if (arg1) (arg1)->InsertionCode = arg2;
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->U11 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28533,11 +30456,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_InsertionCode_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U11_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter result;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28545,11 +30468,11 @@ _wrap_pdbRecord_InsertionCode_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","InsertionCode", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U11", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter) ((arg1)->InsertionCode);
-  vresult = SWIG_From_char((char)(result));
+  result = (pdbFileParaTypeReal) ((arg1)->U11);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28557,28 +30480,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Coord_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U22_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbCoord *arg2 = (pdbCoord *) 0 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Coord", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U22", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  res2 = SWIG_ConvertPtr(argv[0], &argp2,SWIGTYPE_p_pdbCoord, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "pdbCoord *","Coord", 2, argv[0] )); 
-  }
-  arg2 = (pdbCoord *)(argp2);
-  if (arg1) (arg1)->Coord = *arg2;
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U22", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->U22 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28586,11 +30509,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Coord_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U22_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbCoord *result = 0 ;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28598,11 +30521,11 @@ _wrap_pdbRecord_Coord_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Coord", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U22", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbCoord *)& ((arg1)->Coord);
-  vresult = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pdbCoord, 0 |  0 );
+  result = (pdbFileParaTypeReal) ((arg1)->U22);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28610,7 +30533,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Occupancy_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U33_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
@@ -28623,15 +30546,15 @@ _wrap_pdbRecord_Occupancy_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Occupancy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U33", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
   ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","Occupancy", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U33", 2, argv[0] ));
   } 
   arg2 = (pdbFileParaTypeReal)(val2);
-  if (arg1) (arg1)->Occupancy = arg2;
+  if (arg1) (arg1)->U33 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28639,7 +30562,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Occupancy_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U33_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28651,10 +30574,10 @@ _wrap_pdbRecord_Occupancy_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Occupancy", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U33", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeReal) ((arg1)->Occupancy);
+  result = (pdbFileParaTypeReal) ((arg1)->U33);
   vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
@@ -28663,7 +30586,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_TemperatureFactor_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U12_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
@@ -28676,15 +30599,15 @@ _wrap_pdbRecord_TemperatureFactor_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","TemperatureFactor", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U12", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
   ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","TemperatureFactor", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U12", 2, argv[0] ));
   } 
   arg2 = (pdbFileParaTypeReal)(val2);
-  if (arg1) (arg1)->TemperatureFactor = arg2;
+  if (arg1) (arg1)->U12 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28692,7 +30615,7 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_TemperatureFactor_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U12_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28704,10 +30627,10 @@ _wrap_pdbRecord_TemperatureFactor_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","TemperatureFactor", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U12", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeReal) ((arg1)->TemperatureFactor);
+  result = (pdbFileParaTypeReal) ((arg1)->U12);
   vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
@@ -28716,12 +30639,12 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_FootnoteNumber_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U13_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeInteger arg2 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  long val2 ;
+  float val2 ;
   int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
@@ -28729,15 +30652,15 @@ _wrap_pdbRecord_FootnoteNumber_set(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FootnoteNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U13", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  ecode2 = SWIG_AsVal_long(argv[0], &val2);
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
   if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeInteger","FootnoteNumber", 2, argv[0] ));
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U13", 2, argv[0] ));
   } 
-  arg2 = (pdbFileParaTypeInteger)(val2);
-  if (arg1) (arg1)->FootnoteNumber = arg2;
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->U13 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28745,11 +30668,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_FootnoteNumber_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U13_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeInteger result;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28757,11 +30680,11 @@ _wrap_pdbRecord_FootnoteNumber_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","FootnoteNumber", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U13", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeInteger) ((arg1)->FootnoteNumber);
-  vresult = SWIG_From_long((long)(result));
+  result = (pdbFileParaTypeReal) ((arg1)->U13);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -28769,29 +30692,28 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Footnote_set(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U23_set(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
-  pdbFileParaTypeCharacter *arg2 ;
+  pdbFileParaTypeReal arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  char temp2[(10) +1] ;
-  int res2 ;
+  float val2 ;
+  int ecode2 = 0 ;
   
   if ((argc < 1) || (argc > 1)) {
     rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Footnote", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U23", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  res2 = SWIG_AsCharArray(argv[0], temp2, (10) +1);
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), Ruby_Format_TypeError( "", "char [(10) +1]","Footnote", 2, argv[0] ));
-  }
-  arg2 = (char *)(temp2);
-  if (arg2) memcpy(arg1->Footnote,arg2,(10) +1*sizeof(char));
-  else memset(arg1->Footnote,0,(10) +1*sizeof(char));
+  ecode2 = SWIG_AsVal_float(argv[0], &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), Ruby_Format_TypeError( "", "pdbFileParaTypeReal","U23", 2, argv[0] ));
+  } 
+  arg2 = (pdbFileParaTypeReal)(val2);
+  if (arg1) (arg1)->U23 = arg2;
   return Qnil;
 fail:
   return Qnil;
@@ -28799,11 +30721,11 @@ fail:
 
 
 SWIGINTERN VALUE
-_wrap_pdbRecord_Footnote_get(int argc, VALUE *argv, VALUE self) {
+_wrap_pdbRecord_U23_get(int argc, VALUE *argv, VALUE self) {
   struct pdbRecord *arg1 = (struct pdbRecord *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  pdbFileParaTypeCharacter *result = 0 ;
+  pdbFileParaTypeReal result;
   VALUE vresult = Qnil;
   
   if ((argc < 0) || (argc > 0)) {
@@ -28811,17 +30733,11 @@ _wrap_pdbRecord_Footnote_get(int argc, VALUE *argv, VALUE self) {
   }
   res1 = SWIG_ConvertPtr(self, &argp1,SWIGTYPE_p_pdbRecord, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","Footnote", 1, self )); 
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "struct pdbRecord *","U23", 1, self )); 
   }
   arg1 = (struct pdbRecord *)(argp1);
-  result = (pdbFileParaTypeCharacter *)(pdbFileParaTypeCharacter *) ((arg1)->Footnote);
-  {
-    size_t size = (10) +1;
-    
-    while (size && (result[size - 1] == '\0')) --size;
-    
-    vresult = SWIG_FromCharPtrAndSize(result, size);
-  }
+  result = (pdbFileParaTypeReal) ((arg1)->U23);
+  vresult = SWIG_From_float((float)(result));
   return vresult;
 fail:
   return Qnil;
@@ -30199,6 +32115,30 @@ fail:
 
 
 SWIGINTERN VALUE
+_wrap_pdbFileIsANISOU(int argc, VALUE *argv, VALUE self) {
+  pdbFile *arg1 = (pdbFile *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  long result;
+  VALUE vresult = Qnil;
+  
+  if ((argc < 1) || (argc > 1)) {
+    rb_raise(rb_eArgError, "wrong # of arguments(%d for 1)",argc); SWIG_fail;
+  }
+  res1 = SWIG_ConvertPtr(argv[0], &argp1,SWIGTYPE_p_pdbFile, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), Ruby_Format_TypeError( "", "pdbFile *","pdbFileIsANISOU", 1, argv[0] )); 
+  }
+  arg1 = (pdbFile *)(argp1);
+  result = (long)pdbFileIsANISOU(arg1);
+  vresult = SWIG_From_long((long)(result));
+  return vresult;
+fail:
+  return Qnil;
+}
+
+
+SWIGINTERN VALUE
 _wrap_pdbRecordIsNearby(int argc, VALUE *argv, VALUE self) {
   pdbRecord arg1 ;
   pdbRecord arg2 ;
@@ -36496,6 +38436,8 @@ static swig_type_info _swigt__p_mrcImageInformation = {"_p_mrcImageInformation",
 static swig_type_info _swigt__p_mrcImageInformationMode = {"_p_mrcImageInformationMode", "enum mrcImageInformationMode *|mrcImageInformationMode *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_mrcImageParaTypeIntegerCoord = {"_p_mrcImageParaTypeIntegerCoord", "struct mrcImageParaTypeIntegerCoord *|mrcImageParaTypeIntegerCoord *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_mrcImageParaTypeRealCoord = {"_p_mrcImageParaTypeRealCoord", "struct mrcImageParaTypeRealCoord *|mrcImageParaTypeRealCoord *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mrcImagePyramid = {"_p_mrcImagePyramid", "struct mrcImagePyramid *|mrcImagePyramid *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_mrcImagePyramidList = {"_p_mrcImagePyramidList", "struct mrcImagePyramidList *|mrcImagePyramidList *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_mrcImageTailer = {"_p_mrcImageTailer", "union mrcImageTailer *|mrcImageTailer *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_mrcPixelDataHowToGet = {"_p_mrcPixelDataHowToGet", "enum mrcPixelDataHowToGet *|mrcPixelDataHowToGet *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_mrcPixelDataType = {"_p_mrcPixelDataType", "enum mrcPixelDataType *|mrcPixelDataType *", 0, 0, (void*)0, 0};
@@ -36575,6 +38517,8 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_mrcImageInformationMode,
   &_swigt__p_mrcImageParaTypeIntegerCoord,
   &_swigt__p_mrcImageParaTypeRealCoord,
+  &_swigt__p_mrcImagePyramid,
+  &_swigt__p_mrcImagePyramidList,
   &_swigt__p_mrcImageTailer,
   &_swigt__p_mrcPixelDataHowToGet,
   &_swigt__p_mrcPixelDataType,
@@ -36654,6 +38598,8 @@ static swig_cast_info _swigc__p_mrcImageInformation[] = {  {&_swigt__p_mrcImageI
 static swig_cast_info _swigc__p_mrcImageInformationMode[] = {  {&_swigt__p_mrcImageInformationMode, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_mrcImageParaTypeIntegerCoord[] = {  {&_swigt__p_mrcImageParaTypeIntegerCoord, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_mrcImageParaTypeRealCoord[] = {  {&_swigt__p_mrcImageParaTypeRealCoord, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mrcImagePyramid[] = {  {&_swigt__p_mrcImagePyramid, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_mrcImagePyramidList[] = {  {&_swigt__p_mrcImagePyramidList, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_mrcImageTailer[] = {  {&_swigt__p_mrcImageTailer, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_mrcPixelDataHowToGet[] = {  {&_swigt__p_mrcPixelDataHowToGet, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_mrcPixelDataType[] = {  {&_swigt__p_mrcPixelDataType, 0, 0, 0},{0, 0, 0, 0}};
@@ -36733,6 +38679,8 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_mrcImageInformationMode,
   _swigc__p_mrcImageParaTypeIntegerCoord,
   _swigc__p_mrcImageParaTypeRealCoord,
+  _swigc__p_mrcImagePyramid,
+  _swigc__p_mrcImagePyramidList,
   _swigc__p_mrcImageTailer,
   _swigc__p_mrcPixelDataHowToGet,
   _swigc__p_mrcPixelDataType,
@@ -37038,6 +38986,7 @@ SWIGEXPORT void Init_molvieRuby(void) {
   SwigClassEulerAngleInfo.destroy = (void (*)(void *)) free_EulerAngleInfo;
   SwigClassEulerAngleInfo.trackObjects = 0;
   rb_define_module_function(mMolvieRuby, "matrix3DInit", _wrap_matrix3DInit, -1);
+  rb_define_module_function(mMolvieRuby, "matrix3DCopy", _wrap_matrix3DCopy, -1);
   rb_define_module_function(mMolvieRuby, "matrix3DFromRotationMatrix", _wrap_matrix3DFromRotationMatrix, -1);
   rb_define_module_function(mMolvieRuby, "matrix3DInverse", _wrap_matrix3DInverse, -1);
   rb_define_module_function(mMolvieRuby, "matrix3DMultiply", _wrap_matrix3DMultiply, -1);
@@ -37481,6 +39430,8 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_method(SwigClassMrcImage.klass, "ImageShortImage", _wrap_mrcImage_ImageShortImage_get, -1);
   rb_define_method(SwigClassMrcImage.klass, "ImageLongImage=", _wrap_mrcImage_ImageLongImage_set, -1);
   rb_define_method(SwigClassMrcImage.klass, "ImageLongImage", _wrap_mrcImage_ImageLongImage_get, -1);
+  rb_define_method(SwigClassMrcImage.klass, "ImageULongImage=", _wrap_mrcImage_ImageULongImage_set, -1);
+  rb_define_method(SwigClassMrcImage.klass, "ImageULongImage", _wrap_mrcImage_ImageULongImage_get, -1);
   rb_define_method(SwigClassMrcImage.klass, "ImageFloatImage=", _wrap_mrcImage_ImageFloatImage_set, -1);
   rb_define_method(SwigClassMrcImage.klass, "ImageFloatImage", _wrap_mrcImage_ImageFloatImage_get, -1);
   rb_define_method(SwigClassMrcImage.klass, "ImageDoubleImage=", _wrap_mrcImage_ImageDoubleImage_set, -1);
@@ -37511,6 +39462,32 @@ SWIGEXPORT void Init_molvieRuby(void) {
   SwigClassMrcImage.destroy = (void (*)(void *)) free_mrcImage;
   SwigClassMrcImage.trackObjects = 0;
   
+  SwigClassMrcImagePyramidList.klass = rb_define_class_under(mMolvieRuby, "MrcImagePyramidList", rb_cObject);
+  SWIG_TypeClientData(SWIGTYPE_p_mrcImagePyramidList, (void *) &SwigClassMrcImagePyramidList);
+  rb_define_alloc_func(SwigClassMrcImagePyramidList.klass, _wrap_mrcImagePyramidList_allocate);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "initialize", _wrap_new_mrcImagePyramidList, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "mrc=", _wrap_mrcImagePyramidList_mrc_set, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "mrc", _wrap_mrcImagePyramidList_mrc_get, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "up=", _wrap_mrcImagePyramidList_up_set, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "up", _wrap_mrcImagePyramidList_up_get, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "down=", _wrap_mrcImagePyramidList_down_set, -1);
+  rb_define_method(SwigClassMrcImagePyramidList.klass, "down", _wrap_mrcImagePyramidList_down_get, -1);
+  SwigClassMrcImagePyramidList.mark = 0;
+  SwigClassMrcImagePyramidList.destroy = (void (*)(void *)) free_mrcImagePyramidList;
+  SwigClassMrcImagePyramidList.trackObjects = 0;
+  
+  SwigClassMrcImagePyramid.klass = rb_define_class_under(mMolvieRuby, "MrcImagePyramid", rb_cObject);
+  SWIG_TypeClientData(SWIGTYPE_p_mrcImagePyramid, (void *) &SwigClassMrcImagePyramid);
+  rb_define_alloc_func(SwigClassMrcImagePyramid.klass, _wrap_mrcImagePyramid_allocate);
+  rb_define_method(SwigClassMrcImagePyramid.klass, "initialize", _wrap_new_mrcImagePyramid, -1);
+  rb_define_method(SwigClassMrcImagePyramid.klass, "top=", _wrap_mrcImagePyramid_top_set, -1);
+  rb_define_method(SwigClassMrcImagePyramid.klass, "top", _wrap_mrcImagePyramid_top_get, -1);
+  rb_define_method(SwigClassMrcImagePyramid.klass, "current=", _wrap_mrcImagePyramid_current_set, -1);
+  rb_define_method(SwigClassMrcImagePyramid.klass, "current", _wrap_mrcImagePyramid_current_get, -1);
+  SwigClassMrcImagePyramid.mark = 0;
+  SwigClassMrcImagePyramid.destroy = (void (*)(void *)) free_mrcImagePyramid;
+  SwigClassMrcImagePyramid.trackObjects = 0;
+  
   SwigClassMrcImageInformation.klass = rb_define_class_under(mMolvieRuby, "MrcImageInformation", rb_cObject);
   SWIG_TypeClientData(SWIGTYPE_p_mrcImageInformation, (void *) &SwigClassMrcImageInformation);
   rb_define_alloc_func(SwigClassMrcImageInformation.klass, _wrap_mrcImageInformation_allocate);
@@ -37561,6 +39538,34 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_method(SwigClassMrcImageInformation.klass, "sdOfAllAxis", _wrap_mrcImageInformation_sdOfAllAxis_get, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "aveOfAllAxis=", _wrap_mrcImageInformation_aveOfAllAxis_set, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "aveOfAllAxis", _wrap_mrcImageInformation_aveOfAllAxis_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresOfHighValueArea=", _wrap_mrcImageInformation_thresOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresOfHighValueArea", _wrap_mrcImageInformation_thresOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "meanOfHighValueArea=", _wrap_mrcImageInformation_meanOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "meanOfHighValueArea", _wrap_mrcImageInformation_meanOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "sdOfHighValueArea=", _wrap_mrcImageInformation_sdOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "sdOfHighValueArea", _wrap_mrcImageInformation_sdOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "seOfHighValueArea=", _wrap_mrcImageInformation_seOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "seOfHighValueArea", _wrap_mrcImageInformation_seOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "maxOfHighValueArea=", _wrap_mrcImageInformation_maxOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "maxOfHighValueArea", _wrap_mrcImageInformation_maxOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "minOfHighValueArea=", _wrap_mrcImageInformation_minOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "minOfHighValueArea", _wrap_mrcImageInformation_minOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "medianOfHighValueArea=", _wrap_mrcImageInformation_medianOfHighValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "medianOfHighValueArea", _wrap_mrcImageInformation_medianOfHighValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresOfLowValueArea=", _wrap_mrcImageInformation_thresOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresOfLowValueArea", _wrap_mrcImageInformation_thresOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "meanOfLowValueArea=", _wrap_mrcImageInformation_meanOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "meanOfLowValueArea", _wrap_mrcImageInformation_meanOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "sdOfLowValueArea=", _wrap_mrcImageInformation_sdOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "sdOfLowValueArea", _wrap_mrcImageInformation_sdOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "seOfLowValueArea=", _wrap_mrcImageInformation_seOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "seOfLowValueArea", _wrap_mrcImageInformation_seOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "maxOfLowValueArea=", _wrap_mrcImageInformation_maxOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "maxOfLowValueArea", _wrap_mrcImageInformation_maxOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "minOfLowValueArea=", _wrap_mrcImageInformation_minOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "minOfLowValueArea", _wrap_mrcImageInformation_minOfLowValueArea_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "medianOfLowValueArea=", _wrap_mrcImageInformation_medianOfLowValueArea_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "medianOfLowValueArea", _wrap_mrcImageInformation_medianOfLowValueArea_get, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "flagXrange=", _wrap_mrcImageInformation_flagXrange_set, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "flagXrange", _wrap_mrcImageInformation_flagXrange_get, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "flagYrange=", _wrap_mrcImageInformation_flagYrange_set, -1);
@@ -37587,6 +39592,10 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_method(SwigClassMrcImageInformation.klass, "CentreY", _wrap_mrcImageInformation_CentreY_get, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "CentreZ=", _wrap_mrcImageInformation_CentreZ_set, -1);
   rb_define_method(SwigClassMrcImageInformation.klass, "CentreZ", _wrap_mrcImageInformation_CentreZ_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresHigh=", _wrap_mrcImageInformation_thresHigh_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresHigh", _wrap_mrcImageInformation_thresHigh_get, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresLow=", _wrap_mrcImageInformation_thresLow_set, -1);
+  rb_define_method(SwigClassMrcImageInformation.klass, "thresLow", _wrap_mrcImageInformation_thresLow_get, -1);
   SwigClassMrcImageInformation.mark = 0;
   SwigClassMrcImageInformation.destroy = (void (*)(void *)) free_mrcImageInformation;
   SwigClassMrcImageInformation.trackObjects = 0;
@@ -37599,6 +39608,9 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_const(mMolvieRuby, "MeanOf2DEdgeY", SWIG_From_int((int)(meanOf2DEdgeY)));
   rb_define_const(mMolvieRuby, "RMSofAllPixels", SWIG_From_int((int)(RMSofAllPixels)));
   rb_define_const(mMolvieRuby, "SdOfAllAxis", SWIG_From_int((int)(sdOfAllAxis)));
+  rb_define_const(mMolvieRuby, "MeanOfHighValueArea", SWIG_From_int((int)(meanOfHighValueArea)));
+  rb_define_const(mMolvieRuby, "MeanOfLowValueArea", SWIG_From_int((int)(meanOfLowValueArea)));
+  rb_define_const(mMolvieRuby, "MeanOfLowValueAreaAndHighValueArea", SWIG_From_int((int)(meanOfLowValueAreaAndHighValueArea)));
   rb_define_const(mMolvieRuby, "MrcPixelRePart", SWIG_From_int((int)(mrcPixelRePart)));
   rb_define_const(mMolvieRuby, "MrcPixelImPart", SWIG_From_int((int)(mrcPixelImPart)));
   rb_define_const(mMolvieRuby, "MrcPixelSigmaPart", SWIG_From_int((int)(mrcPixelSigmaPart)));
@@ -37946,6 +39958,7 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_module_function(mMolvieRuby, "lmrcImageMaxDataGet", _wrap_lmrcImageMaxDataGet, -1);
   rb_define_module_function(mMolvieRuby, "lmrcImageStackAlloc", _wrap_lmrcImageStackAlloc, -1);
   rb_define_module_function(mMolvieRuby, "lmrcImageStackPush", _wrap_lmrcImageStackPush, -1);
+  rb_define_module_function(mMolvieRuby, "lmrcImagePixelValueSort", _wrap_lmrcImagePixelValueSort, -1);
   rb_define_const(mMolvieRuby, "PDB_FILE_RECORD_FULL_LENGTH", SWIG_From_int((int)((80))));
   rb_define_const(mMolvieRuby, "PDB_FILE_RECORD_START", SWIG_From_int((int)((0))));
   rb_define_const(mMolvieRuby, "PDB_FILE_RECORD_LENGTH", SWIG_From_int((int)((6))));
@@ -37977,11 +39990,30 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_const(mMolvieRuby, "PDB_FILE_FOOT_LENGTH", SWIG_From_int((int)((3))));
   rb_define_const(mMolvieRuby, "PDB_FILE_FOOTNOTE_START", SWIG_From_int((int)((70))));
   rb_define_const(mMolvieRuby, "PDB_FILE_FOOTNOTE_LENGTH", SWIG_From_int((int)((10))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_SEGID_START", SWIG_From_int((int)((72))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_SEGID_LENGTH", SWIG_From_int((int)((4))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ELEMENT_START", SWIG_From_int((int)((76))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ELEMENT_LENGTH", SWIG_From_int((int)((2))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_CHARGE_START", SWIG_From_int((int)((78))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_CHARGE_LENGTH", SWIG_From_int((int)((2))));
   rb_define_const(mMolvieRuby, "MAX_RESIDUE_NUMBER", SWIG_From_int((int)((20))));
   rb_define_const(mMolvieRuby, "RESIDUE_ONECHAR_MODE", SWIG_From_int((int)((1))));
   rb_define_const(mMolvieRuby, "RESIDUE_THREECHAR_MODE", SWIG_From_int((int)((3))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U11_START", SWIG_From_int((int)((28))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U11_LENGTH", SWIG_From_int((int)((7))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U22_START", SWIG_From_int((int)((35))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U22_LENGTH", SWIG_From_int((int)((7))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U33_START", SWIG_From_int((int)((42))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U33_LENGTH", SWIG_From_int((int)((7))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U12_START", SWIG_From_int((int)((49))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U12_LENGTH", SWIG_From_int((int)((7))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U13_START", SWIG_From_int((int)((56))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U13_LENGTH", SWIG_From_int((int)((7))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U23_START", SWIG_From_int((int)((63))));
+  rb_define_const(mMolvieRuby, "PDB_FILE_ANISOU_U23_LENGTH", SWIG_From_int((int)((7))));
   rb_define_const(mMolvieRuby, "PdbRecordAtom", SWIG_FromCharPtr("(ATOM  )"));
   rb_define_const(mMolvieRuby, "PdbRecordHeteroAtom", SWIG_FromCharPtr("(HETATM)"));
+  rb_define_const(mMolvieRuby, "PdbRecordANISOU", SWIG_FromCharPtr("(ANISOU)"));
   rb_define_const(mMolvieRuby, "PdbRecordHelix", SWIG_FromCharPtr("(HELIX )"));
   rb_define_const(mMolvieRuby, "PdbRecordSheet", SWIG_FromCharPtr("(SHEET )"));
   rb_define_const(mMolvieRuby, "PdbRecordTurn", SWIG_FromCharPtr("(TURN  )"));
@@ -38240,6 +40272,28 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_method(SwigClassPdbRecord.klass, "FootnoteNumber", _wrap_pdbRecord_FootnoteNumber_get, -1);
   rb_define_method(SwigClassPdbRecord.klass, "Footnote=", _wrap_pdbRecord_Footnote_set, -1);
   rb_define_method(SwigClassPdbRecord.klass, "Footnote", _wrap_pdbRecord_Footnote_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "SegID=", _wrap_pdbRecord_SegID_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "SegID", _wrap_pdbRecord_SegID_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "Element=", _wrap_pdbRecord_Element_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "Element", _wrap_pdbRecord_Element_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "Charge=", _wrap_pdbRecord_Charge_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "Charge", _wrap_pdbRecord_Charge_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "flagANISOU=", _wrap_pdbRecord_flagANISOU_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "flagANISOU", _wrap_pdbRecord_flagANISOU_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "pAtomforANISOU=", _wrap_pdbRecord_pAtomforANISOU_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "pAtomforANISOU", _wrap_pdbRecord_pAtomforANISOU_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U11=", _wrap_pdbRecord_U11_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U11", _wrap_pdbRecord_U11_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U22=", _wrap_pdbRecord_U22_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U22", _wrap_pdbRecord_U22_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U33=", _wrap_pdbRecord_U33_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U33", _wrap_pdbRecord_U33_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U12=", _wrap_pdbRecord_U12_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U12", _wrap_pdbRecord_U12_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U13=", _wrap_pdbRecord_U13_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U13", _wrap_pdbRecord_U13_get, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U23=", _wrap_pdbRecord_U23_set, -1);
+  rb_define_method(SwigClassPdbRecord.klass, "U23", _wrap_pdbRecord_U23_get, -1);
   rb_define_method(SwigClassPdbRecord.klass, "prev=", _wrap_pdbRecord_prev_set, -1);
   rb_define_method(SwigClassPdbRecord.klass, "prev", _wrap_pdbRecord_prev_get, -1);
   rb_define_method(SwigClassPdbRecord.klass, "next=", _wrap_pdbRecord_next_set, -1);
@@ -38298,6 +40352,7 @@ SWIGEXPORT void Init_molvieRuby(void) {
   rb_define_module_function(mMolvieRuby, "pdbFileGoToEnd", _wrap_pdbFileGoToEnd, -1);
   rb_define_module_function(mMolvieRuby, "pdbFileIsEndLine", _wrap_pdbFileIsEndLine, -1);
   rb_define_module_function(mMolvieRuby, "pdbFileIsAtom", _wrap_pdbFileIsAtom, -1);
+  rb_define_module_function(mMolvieRuby, "pdbFileIsANISOU", _wrap_pdbFileIsANISOU, -1);
   rb_define_module_function(mMolvieRuby, "pdbRecordIsNearby", _wrap_pdbRecordIsNearby, -1);
   rb_define_module_function(mMolvieRuby, "pdbFileIsCA", _wrap_pdbFileIsCA, -1);
   rb_define_module_function(mMolvieRuby, "pdbFileIsNegative", _wrap_pdbFileIsNegative, -1);