From 5c50c3f22f30ec62af4834d4cec0ea6b8ffbeeed Mon Sep 17 00:00:00 2001 From: Takuo Yasunaga Date: Fri, 3 Jul 2015 10:17:59 +0900 Subject: [PATCH] faster 3Dto2D --- src/Objects/DataManip/transform/src/lmrc3Dto2D.c | 19 ++- src/Objects/General/eosBayes/inc/eosBayes.h | 5 + util/src/Makefile | 0 util/src/TclTk/Makefile | 147 +++++++++++++++++++++++ 4 files changed, 166 insertions(+), 5 deletions(-) mode change 100755 => 100644 util/src/Makefile create mode 100755 util/src/TclTk/Makefile diff --git a/src/Objects/DataManip/transform/src/lmrc3Dto2D.c b/src/Objects/DataManip/transform/src/lmrc3Dto2D.c index de8ca05874..ba0f0d3aa9 100755 --- a/src/Objects/DataManip/transform/src/lmrc3Dto2D.c +++ b/src/Objects/DataManip/transform/src/lmrc3Dto2D.c @@ -47,6 +47,7 @@ lmrcImage3Dto2DSingle(mrcImage* out2D, mrcImage* in3D, int mode) { int max; + int i, j, k; double sum; mrcImageParaTypeReal gx, gy, gz; mrcImageParaTypeReal g3x, g3y, g3z; @@ -64,6 +65,7 @@ lmrcImage3Dto2DSingle(mrcImage* out2D, mrcImage* in3D, out2D->HeaderN.x = max; out2D->HeaderN.y = max; out2D->HeaderN.z = 1; + out2D->HeaderMode = mrcFloatImage; mrcInit(out2D, NULL); } @@ -87,10 +89,16 @@ lmrcImage3Dto2DSingle(mrcImage* out2D, mrcImage* in3D, v.data[0] = prjx - gx; v.data[1] = prjy - gy; v.data[2] = prjz - gz; - matrix3DMultiplyVector(&v, MatrixAnti); - x = v.data[0] + g3x; - y = v.data[1] + g3y; - z = v.data[2] + g3z; + + x = g3x; + y = g3y; + z = g3z; + //matrix3DMultiplyVector(&v, MatrixAnti); + for(i=0; i<3; i++) { + x += MatrixAnti[i][0]*v.data[i]; + y += MatrixAnti[i][1]*v.data[i]; + z += MatrixAnti[i][2]*v.data[i]; + } switch(linfo->AreaMode) { lmrc3Dto2DInfoAreaModeGlobular: { if(SQR((x - g3x)/r3x) @@ -118,7 +126,8 @@ lmrcImage3Dto2DSingle(mrcImage* out2D, mrcImage* in3D, } sum+=data; } - mrcPixelDataSet(out2D, prjx, prjy, llinfo->section, sum/max, mrcPixelRePart); + out2D->ImageFloatImage[(int)(prjx+prjy*out2D->HeaderN.x+llinfo->section*out2D->HeaderN.x*out2D->HeaderN.y)] = sum/max; + //mrcPixelDataSet(out2D, prjx, prjy, llinfo->section, sum/max, mrcPixelRePart); } } } diff --git a/src/Objects/General/eosBayes/inc/eosBayes.h b/src/Objects/General/eosBayes/inc/eosBayes.h index 868174ee09..17e6798907 100644 --- a/src/Objects/General/eosBayes/inc/eosBayes.h +++ b/src/Objects/General/eosBayes/inc/eosBayes.h @@ -19,5 +19,10 @@ typedef struct eosBayes { eosBayesDistribution* likelihood; } eosBayes; +extern void eosBayesInit(eosBayes* b, int numDistribution, int numLikelihood, int mode); +extern void eosBayesDistributionInit(eosBayes* b, int mode); +extern void eosBayesDistributionInit0(eosBayesDistribution* d, int mode); +extern void eosBayesEstimation(eosBayesDistribution* d, int mode); +extern void eosBayesWrite(FILE* fpt, eosBayesDistribution* d, int mode); #endif /* EOS_BAYES_H */ diff --git a/util/src/Makefile b/util/src/Makefile old mode 100755 new mode 100644 diff --git a/util/src/TclTk/Makefile b/util/src/TclTk/Makefile new file mode 100755 index 0000000000..e23925f7d9 --- /dev/null +++ b/util/src/TclTk/Makefile @@ -0,0 +1,147 @@ +.SUFFIXES: + +.IGNORE: + +SHELL=/bin/ksh + +include ${EOS_HOME}/src/Config/${EOS_HOST}.inc + +TCLVERSION=8.4.5 +TKVERSION=8.4.5 +#TCLVERSION=8.5.8 +#TKVERSION=8.5.8 +TKIMGVERSION=1.4 +BLTVERSION=2.4z +#VTKVERSION1=Nighty +#VTKVERSION=5.4.2 +VTKVERSION0=6.2 +VTKVERSION=$(VTKVERSION0).0 +VTKNAME=VTK-$(VTKVERSION) +VTKWHERE=http://www.vtk.org/files/release/$(VTKVERSION0)/$(VTKNAME).tar.gz + +check: TclInit TkInit TkImgInit BLTInit VTKInit + +config: TclConfig TkConfig TkImgInit BLTConfig VTKConfig + +all: Tcl Tk TkImg BLT VTK + +clean: TclClean TkClean TkImgClean BLTClean VTKClean + +TclInit:: + @ln -s ../../src/TclTk/tcl$(TCLVERSION)-src.tar.gz . + @gzip -dc tcl$(TCLVERSION)-src.tar.gz | tar xvf - + +TkInit:: + @ln -s ../../src/TclTk/tk$(TKVERSION)-src.tar.gz . + @gzip -dc tk$(TKVERSION)-src.tar.gz | tar xvf - + +TkImgInit:: + @ln -s ../../src/TclTk/tkimg$(TKIMGVERSION).tar.gz . + @gzip -dc tkimg$(TKIMGVERSION)tar.gz | tar xvf - + +BLTInit:: + @ln -s ../../src/TclTk/BLT$(BLTVERSION).tar.gz . + @gzip -dc BLT$(BLTVERSION).tar.gz | tar xvf - + +VTKInit:: + #@ln -s ../../src/TclTk/vtk-$(VTKVERSION).tar.gz . + #@gzip -dc vtk-$(VTKVERSION).tar.gz | tar xvf - + curl -O $(VTKWHERE) + tar xvzf $(VTKNAME).tar.gz + +TclConfig:: + @cd tcl$(TCLVERSION)/unix ; \ + $(MAKE) clean ; \ + ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ + --enable-shared \ + --enable-gcc + +TkConfig:: + @cd tk$(TKVERSION)/unix ; \ + $(MAKE) clean; \ + ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ + --with-tcl=../../tcl$(TCLVERSION)/unix \ + --enable-gcc --with-libtiff +TkImgConfig:: + @cd tkimg$(TKIMGVERSION) ; \ $(MAKE) clean; \ + ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ + --with-tcl=${EOS_HOME}/util/src$(OSTYPE)/TclTk/tcl$(TCLVERSION)/unix \ + --with-tk=${EOS_HOME}/util/src$(OSTYPE)/TclTk/tk$(TKVERSION)/unix \ + +BLTConfig:: + @cd blt$(BLTVERSION); \ + $(MAKE) clean ; \ + ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ + --with-tcl=../tcl$(TCLVERSION)/unix \ + --with-tk=../tk$(TKVERSION)/unix \ + --enable-jpeg=${EOS_HOME}/util/$(OSTYPE) \ + --enable-shared \ + --enable-gcc \ + --with-x --with-gnu-ld + +VTKConfig:: + cd $(VTKNAME); \ + ${EOS_HOME}/util/$(OSTYPE)/bin/ccmake . + #cd vtk$(VTKVERSION); \ + #$(MAKE) clean ; \ #if [ $(OSTYPE) = "SGI" ] ; \ #then \ # echo "Using GL" ; \ # ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ # --with-tcl=../tcl$(TCLVERSION)/unix \ # --with-tk=../tk$(TKVERSION)/unix \ # --with-tkwidget \ # --with-x ; \ #else \ + # echo "Using MESA" ; \ + # ./configure --prefix=${EOS_HOME}/util/$(OSTYPE) \ + # --with-tcl \ + # --with-tkwidget \ + # --without-gl \ + # --with-mesa \ + # --without-python \ + # --with-graphics \ + # --with-imaging \ + # --with-patented \ + # --with-x ; \ + # echo "TCL_INCLUDE=-I${EOS_HOME}/util/$(OSTYPE)/include" >> user.make ; \ + # echo "TCL_LIB=${EOS_HOME}/util/$(OSTYPE)/lib/libtcl8.3.a " >> user.make ; \ + # echo "TK_INCLUDE=-I${EOS_HOME}/util/$(OSTYPE)/include" >> user.make ; \ + # echo "TK_LIB=${EOS_HOME}/util/$(OSTYPE)/lib/libtk8.3.a " >> user.make ; \ + # echo "MESA_INCLUDE=-I${EOS_HOME}/util/$(OSTYPE)/include" >> user.make ; \ + # echo "MESA_LIB=${EOS_HOME}/util/$(OSTYPE)/lib/libMesaGL.a " >> user.make ; \ + #fi + +Tcl:: + @cd tcl$(TCLVERSION)/unix ; \ + $(MAKE) install + +Tk:: + @cd tk$(TKVERSION)/unix ; \ + $(MAKE) install + +TkImg:: + @cd tkimg$(TKIMGVERSION)/; \ + $(MAKE) install + + +BLT:: + @cd blt$(BLTVERSION); \ + $(MAKE) install ; \ + # $(MAKE) INSTALL=${EOS_HOME}/sbin/eosinstall install + +VTK:: + cd VTK ; \ + $(MAKE) ; \ + $(MAKE) install + + +TclClean:: + @cd tcl$(TCLVERSION)/unix ; \ + $(MAKE) distclean + +TkClean:: + @cd tk$(TKVERSION)/unix ; \ + $(MAKE) distclean + + +BLTClean:: + @cd blt$(BLTVERSION); \ + $(MAKE) distclean + +VTKClean:: + cd vtk$(VTKVERSION) ; \ + $(MAKE) distclean + + -- 2.11.0