Gnuplot is installed by default on Windows. But if you are using another Operating system:
@@ -141,7 +141,7 @@ temporarly, to Administrator privileges (usally by right clicking the
-Imach version 0.98p0 and 0.98q0 of March 2015 can
+Imach version 0.98q4 of August 2015 can
be downloaded below as a setup.exe file
imach-0.98?-#-setup.exe. The ? corresponds to a version number while
the # corresponds to same program but compiled differently.
@@ -178,7 +178,7 @@ like workpad but which have the advantage to be installed on any Windows).
Old Windows versions are accessible here.
-
On Mac OS/X Lion and higher (March 2015)
+On Mac OS/X Lion and higher (August 2015)
IMaCh can be easily compiled with gcc on MacIntosh as soon as
XCode (free download from Apple) is intalled on your MaCIntosh.
@@ -227,11 +227,11 @@ a rpm yet, just ask us for the CVS tree location (not completely GPL
today), and compile the sources. Remarks concerning the Linux versions
are similar to the Mac OS/X version.
-New (March 2015) You
+New (August 2015) You
can download below a binary tar file for
respectively a 32 bits or 64 bits Linux bo, for example:
-imach-Linux-0.98p0-linux-i586-bin.tar.bz2 and
-imach-Linux-0.98p0-linux-x86-64-bin.tar.bz2
+imach-Linux-0.98q4-linux-i586-bin.tar.bz2 and
+imach-Linux-0.98q4-linux-x86-64-bin.tar.bz2
The binaries have been crosscompiled with gcc on my OS/X Mac.
Each binary contains two directories bin
@@ -245,14 +245,10 @@ is ./bin/imach ./html/doc/biaspar.imach
today most efficient hardwares) the command gnuplot
biaspar.gp will fail. If successful, typing e will
open biaspar.htm with your browser and all the results
- including graphs generated by gnuplot will appear. Please
- subscribe to the mailing
- list imach-users@listes.ined.fr for comments and
- reports on the performance (see the Performance section of
- the wiki).
+ including graphs generated by gnuplot will appear.
-
Downloads
Version 0.98p0 is similar
+ Downloads (see Download page for recent binaries)
Version 0.98p0 is similar
to earlier versions with, hopefully, less bugs. Version 0.98q0 has
one main advantage and one main disadvantage:
@@ -351,7 +347,7 @@ is ./bin/imach ./html/doc/biaspar.imach
-
Other downloads
+
Downloads
and bugs reported
Click
@@ -392,8 +388,11 @@ href="http://euroreves.ined.fr/imach/wiki/index.php/Documentation">http://eurore
subscribe by sending a mail to imach-users-subscribe@listes.ined.fr
(and unsubscribe with imach-users-unsubscribe@listes.ined.fr
-
+href=mailto:imach-users-unsubscribe@listes.ined.fr>imach-users-unsubscribe@listes.ined.fr)
+ for help, comments and
+ reports on the performance (see the Performance section of
+ the wiki). Archives can be accessed at https://listes.ined.fr/arc/imach-users
+ If you ask for help, it is usually easier to send the parameter file, the .log file as well as some records of the datafile.
IMaCh Wiki
As discussed at the REVES meeting
in Beijing,
diff --git a/src/Makefile b/src/Makefile
index d70833f..7e20338 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -1,13 +1,13 @@
-VERSION=0.98q2
+VERSION=0.98q4
COPYRIGHT=Copyright (C) 2002-2015 INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121) - Intel Software 2015
-IMACHSETUPVERSION=ilc
+IMACHSETUPVERSION=icl
# This is for Windows only
#IMACHSETUPVERSION=mvc
# Linux
# make _linux=1 imachopt
# make _linux=1 imach
-#
+# cpack -D CPACK_RPM_PACKAGE_DEBUG=1 -D CPACK_RPM_SPEC_INSTALL_POST="/bin/true" -G RPM
# make _linux32onosx=1 imachopt
# make _linux64onosx=1 imachopt
@@ -21,7 +21,7 @@ IMACHSETUPVERSION=ilc
# valgrind --dsymutil=yes --leak-check=full --show-leak-kinds=all --track-origins=yes ~/Documents/imachcvs/imach/src/imach-1.129cvsmac radlc-1.129.imach
# Windows
-# make _windowsonosx=1 imachILC-setup (touch setup.iss.in) #binary should have been compiled on Windows with Intel
+# make _windowsonosx=1 imachICL-setup (touch setup.iss.in) #binary should have been compiled on Windows with Intel
# make _windowsonosx=1 imachMVC-setup (touch setup.iss.in) #binary should have been compiled on Windows with cl
# make _windowsonosx=1 imachMVC-noreg-setup
#
@@ -299,35 +299,68 @@ imachcyg-noreg-setup: imachcygopt.exe noreg-setup.iss
$(CP) imachcygopt.exe imach$(VERSION)-$(BINVERSION).exe
$(SETUPCOMP) /cc $(TMPNOREGSETUPSCRIPT)
cp Output/$(TMPNOREGSETUPEXE) imachcyg-noreg-setup
-
+# ICL compiler 64
+imachICL-build: imach.c
+ icl /GS /W3 /Zc:wchar_t /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "UNICODE" /Qipo /Zc:forScope /MT imach.c
+#/GS /W3 /Gy /Zc:wchar_t /Zi /O2 /Fd"x64\Release\vc120.pdb" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_LIB" /D "_UNICODE" /D "UNICODE" /Qipo /Zc:forScope /Oi /MT /Fa"x64\Release\" /EHsc /nologo /Fo"x64\Release\" /Qprof-dir "x64\Release\" /Fp"x64\Release\IMaCh-icl-x64-0.98q2.pch"
+# /Users/nbrouard/Documents/imach/imach-gui/build/icl64/Release/imach.exe
# both 32 and 64 executables should have been built on Windows with Intel compiler.
-imachILC-setup: IMaCh-ilc64-$(VERSION).exe IMaCh-ilc32-$(VERSION).exe setup.iss
+imachICL-setup: ../build/icl64/Release/IMaCh-$(VERSION).exe ../build/icl32/Release/IMaCh-$(VERSION).exe setup.iss mybuildicl64.bat mybuildicl32.bat
pwd
$(SETUPCOMP) /cc setup.iss
- $(CP) Output/$(TMPSETUPEXE) imachILC-setup
+ $(CP) Output/$(TMPSETUPEXE) imachICL-setup
-imachILC64-setup: IMaCh-ilc64-$(VERSION).exe setup.iss
- pwd
- $(CP) IMaCh-ilc64-$(VERSION).exe imach.exe
- $(SETUPCOMP) /cc setup.iss
- $(CP) Output/$(TMPSETUPEXE) imachILC64-setup
+# imachICL64-setup: IMaCh-icl64-$(VERSION).exe setup.iss
+# pwd
+# $(CP) IMaCh-icl64-$(VERSION).exe imach.exe
+# $(SETUPCOMP) /cc setup.iss
+# $(CP) Output/$(TMPSETUPEXE) imachICL64-setup
-imachILC64-noreg-setup: IMaCh-ilc64-$(VERSION).exe noreg-setup.iss
+imachICL64-noreg-setup: IMaCh-icl64-$(VERSION).exe noreg-setup.iss
touch setup.iss.in
$(SETUPCOMP) /cc $(TMPNOREGSETUPSCRIPT)
- $(CP) Output/$(TMPSETUPEXE) imachILC64-noreg-setup
-
-imachILC32-setup: IMaCh-ilc32-$(VERSION).exe setup.iss
- touch setup.iss.in
- $(CP) IMaCh-ilc32-$(VERSION).exe imach.exe
- $(SETUPCOMP) /cc setup.iss
- $(CP) Output/$(TMPSETUPEXE) imachILC32-setup
-
-imachILC32-noreg-setup: IMaCh-ilc32.exe noreg-setup.iss
+ $(CP) Output/$(TMPSETUPEXE) imachICL64-noreg-setup
+
+../build/icl64/Release/IMaCh-$(VERSION).exe: imach.c mybuildicl64.bat
+ rm -rf ../build/icl64 && mkdir ../build/icl64
+ cp mybuildicl64.bat ../build/icl64/
+ cd ../build/icl64
+ VBoxManage --nologo guestcontrol "Windows7-64" execute --image "C:\Windows\SysWOW64\cmd.exe" \
+ --username brouard --verbose --wait-exit --wait-stdout --wait-stderr -- "/c" "g:\imachcvs\NetBeans\imach\build\icl64\mybuildicl64.bat" "$(VERSION)"
+
+../build/icl32/Release/IMaCh-$(VERSION).exe: imach.c mybuildicl32.bat
+ rm -rf ../build/icl32 && mkdir -p ../build/icl32
+ cp mybuildicl32.bat ../build/icl32/
+ cd ../build/icl32
+ VBoxManage --nologo guestcontrol "Windows7-64" execute --image "C:\Windows\SysWOW64\cmd.exe" \
+ --username brouard --verbose --wait-exit --wait-stdout -- "/c" "g:\imachcvs\NetBeans\imach\build\icl32\mybuildicl32.bat" "$(VERSION)"
+
+../build/vs32/Release/IMaCh-$(VERSION).exe: imach.c mybuildvs32.bat
+ rm -rf ../build/vs32 && mkdir -p ../build/vs32
+ cp mybuildvs32.bat ../build/vs32/
+ cd ../build/vs32
+ VBoxManage --nologo guestcontrol "Windows7-64" execute --image "C:\Windows\SysWOW64\cmd.exe" \
+ --username brouard --verbose --wait-exit --wait-stdout -- "/c" "g:\imach\imach-gui\build\vs32\mybuildvs32.bat" "$(VERSION)"
+# C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K "g:\imach\imach-gui\build\icl32\mybuild.bat"
+#WORK --username brouard --verbose --wait-exit --wait-stdout -- "/c" "c:\users\brouard\mybuild.bat"
+# --username brouard --verbose --wait-exit --wait-stdout -- "/c" "g: && cd \imach\imach-gui\build\icl32 && mybuild.bat"
+# --username brouard --verbose --wait-exit --wait-stdout -- "/c" "g: && cd \imach\imach-gui\build\icl32-xp &&" "C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\VsDevCmd.bat" "&&" "C:\Program Files (x86)\Intel\Composer XE 2015\bin\ipsxe-comp-vars.bat" "ia32" "vs2013" "&&" "msbuild imach-0.98q3.vcxproj /t:Build /p:Configuration=Release"
+# --username brouard --wait-exit --wait-stdout -- "/c" "g: && cd \imach\imach-gui\build\icl32-xp\ &&C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2015\bin\ipsxe-comp-vars.bat" ia32 vs2013"&& msbuild imach.vcxproj >c:\users\brouard\totog.txt"
+# --username brouard --wait-exit --wait-stdout -- "/c" "g: && dir >c:\users\brouard\totog.txt"
+#C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2015\bin\ipsxe-comp-vars.bat" ia32 vs2013"
+#C:\Windows\SysWOW64\cmd.exe /E:ON /V:ON /K ""C:\Program Files (x86)\Intel\Composer XE 2015\bin\ipsxe-comp-vars.bat" intel64 vs2013"
+
+imachICL64-setup: ../build/icl64/Release/IMaCh-$(VERSION).exe setup.iss mybuildicl64.bat
+
+imachICL32-setup: ../build/icl32/Release/IMaCh-$(VERSION).exe setup.iss mybuildicl32.bat
+
+imachVS32-setup: ../build/vs32/Release/IMaCh-$(VERSION).exe setup.iss mybuildvs32.bat
+
+imachICL32-noreg-setup: IMaCh-icl32.exe noreg-setup.iss
touch setup.iss.in
- $(CP) IMaCh-ilc32.exe imach.exe
+ $(CP) IMaCh-icl32.exe imach.exe
$(SETUPCOMP) /cc $(TMPNOREGSETUPSCRIPT)
- $(CP) Output/$(TMPSETUPEXE) imachILC32-noreg-setup
+ $(CP) Output/$(TMPSETUPEXE) imachICL32-noreg-setup
imachMVC-setup: imachMVC.exe setup.iss
touch setup.iss.in
@@ -401,7 +434,7 @@ imachBOBYQAopt.o : imach.c
imachopt : imachopt.o
$(CC) $(LFLAGSOPT) -o imachopt imachopt.o
-# ln -f imachopt imach
+ ln -f imachopt imach
$(CP) imachopt Output/imachopt$(VERSION)-$(BINVERSION)
$(CP) -f imach ../bin
ifdef _intel64onosx
@@ -460,8 +493,9 @@ imachdmg : imachopt.o create-dmg applet IMaChInfo.plist.in IMaChPkgInfo.in IMaCh
md5:
ls Output/* | xargs md5sum
upload:
- rsync -v Output/imach-0.98q2-ilc-setup.exe brouard@henry.ined.fr:/home/euroreves/html/imach/
-#rsync -v Output/* brouard@henry.ined.fr:/home/euroreves/html/imach/
+ rsync -v Output/IMaCh-0.98q4-icl-setup.exe brouard@henry.ined.fr:/home/euroreves/html/imach/Download
+ rsync -v Output/imach0.98q4.dmg brouard@henry.ined.fr:/home/euroreves/html/imach/Download
+# rsync -v Output/* brouard@henry.ined.fr:/home/euroreves/html/imach/Download
imachcyg : imachcyg.o
$(CC) $(LFLAGS) -o imach imachcyg.o
diff --git a/src/imach.c b/src/imach.c
index 09cffdd..c1d4866 100644
--- a/src/imach.c
+++ b/src/imach.c
@@ -1,6 +1,9 @@
/* $Id$
$State$
$Log$
+ Revision 1.192 2015/07/16 16:49:02 brouard
+ Summary: Fixing some outputs
+
Revision 1.191 2015/07/14 10:00:33 brouard
Summary: Some fixes
@@ -693,7 +696,7 @@ typedef struct {
/* $Id$ */
/* $State$ */
-char version[]="Imach version 0.98q3, July 2015,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015";
+char version[]="Imach version 0.98q4, July 2015,INED-EUROREVES-Institut de longevite-Japan Society for the Promotion of Science (Grant-in-Aid for Scientific Research 25293121), Intel Software 2015";
char fullversion[]="$Revision$ $Date$";
char strstart[80];
char optionfilext[10], optionfilefiname[FILENAMELENGTH];
@@ -4533,12 +4536,12 @@ fprintf(fichtm," \n- Graphs
");
}/* End k1 */
fprintf(fichtm,"
");
-
fprintf(fichtm,"\
\n
- \n\
- - Parameter file with estimated parameters and covariance matrix: %s
\n", rfileres,rfileres);
+ - Parameter file with estimated parameters and covariance matrix: %s
\
+ - 95%% confidence intervals and T statistics are in the log file.
\n", rfileres,rfileres);
- fprintf(fichtm," - Variance of one-step probabilities: %s
\n",
+ fprintf(fichtm," - Standard deviation of one-step probabilities: %s
\n",
subdirf2(fileres,"prob"),subdirf2(fileres,"prob"));
fprintf(fichtm,"\
- Variance-covariance of one-step probabilities: %s
\n",
@@ -6558,7 +6561,7 @@ int main(int argc, char *argv[])
if(jj==i) continue;
j++;
fscanf(ficpar,"%1d%1d",&i1,&j1);
- if ((i1 != i) && (j1 != j)){
+ if ((i1 != i) || (j1 != jj)){
printf("Error in line parameters number %d, %1d%1d instead of %1d%1d \n \
It might be a problem of design; if ncovcol and the model are correct\n \
run imach with mle=-1 to get a correct template of the parameter file.\n",numlinepar, i,j, i1, j1);
@@ -6566,8 +6569,8 @@ run imach with mle=-1 to get a correct template of the parameter file.\n",numlin
}
fprintf(ficparo,"%1d%1d",i1,j1);
if(mle==1)
- printf("%1d%1d",i,j);
- fprintf(ficlog,"%1d%1d",i,j);
+ printf("%1d%1d",i,jj);
+ fprintf(ficlog,"%1d%1d",i,jj);
for(k=1; k<=ncovmodel;k++){
fscanf(ficpar," %lf",¶m[i][j][k]);
if(mle==1){
@@ -7108,9 +7111,10 @@ Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf
\n",\
}
printf("iter=%d MLE=%f Eq=%lf*exp(%lf*(age-%d))\n",iter,-gompertz(p),p[1],p[2],agegomp);
- for (i=1;i<=NDIM;i++)
+ for (i=1;i<=NDIM;i++) {
printf("%f [%f ; %f]\n",p[i],p[i]-2*sqrt(matcov[i][i]),p[i]+2*sqrt(matcov[i][i]));
-
+ fprintf(ficlog,"%f [%f ; %f]\n",p[i],p[i]-2*sqrt(matcov[i][i]),p[i]+2*sqrt(matcov[i][i]));
+ }
lsurv=vector(1,AGESUP);
lpop=vector(1,AGESUP);
tpop=vector(1,AGESUP);
@@ -7207,6 +7211,24 @@ Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf
\n",\
ftolhess=ftol; /* Usually correct */
hesscov(matcov, p, npar, delti, ftolhess, func);
}
+ printf("Parameters and 95%% confidence intervals\n");
+ fprintf(ficlog, "Parameters, T and confidence intervals\n");
+ for(i=1,jk=1; i <=nlstate; i++){
+ for(k=1; k <=(nlstate+ndeath); k++){
+ if (k != i) {
+ printf("%d%d ",i,k);
+ fprintf(ficlog,"%d%d ",i,k);
+ for(j=1; j <=ncovmodel; j++){
+ printf("%12.7f T=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-2*sqrt(matcov[jk][jk]),p[jk]+2*sqrt(matcov[jk][jk]));
+ fprintf(ficlog,"%12.7f T=%8.3f CI=[%12.7f ; %12.7f] ",p[jk], p[jk]/sqrt(matcov[jk][jk]), p[jk]-2*sqrt(matcov[jk][jk]),p[jk]+2*sqrt(matcov[jk][jk]));
+ jk++;
+ }
+ printf("\n");
+ fprintf(ficlog,"\n");
+ }
+ }
+ }
+
fprintf(ficres,"# Scales (for hessian or gradient estimation)\n");
printf("# Scales (for hessian or gradient estimation)\n");
fprintf(ficlog,"# Scales (for hessian or gradient estimation)\n");
@@ -7363,6 +7385,7 @@ Interval (in months) between two waves: Min=%d Max=%d Mean=%.2lf
\n",\
dateprev2=anprev2+(mprev2-1)/12.+(jprev2-1)/365.;
fscanf(ficpar,"pop_based=%d\n",&popbased);
+ fprintf(ficlog,"pop_based=%d\n",popbased);
fprintf(ficparo,"pop_based=%d\n",popbased);
fprintf(ficres,"pop_based=%d\n",popbased);