--- imach/src/ChangeLog 2022/07/23 17:43:46 1.54 +++ imach/src/ChangeLog 2024/04/30 10:58:21 1.69 @@ -1,3 +1,178 @@ +2024-04-30 Nicolas Brouard + + * (Module): In version 0.99s4, we incorporated the calculation of + the std error of the proportion of total life expectancy spent in + a specific state Var(e.j/e..) using the formula of Var(X/Y) + depending only of the variances of X and Y and expectancies. + +2024-04-24 Nicolas Brouard + + * (Module): This version comes late after having tested + successfully the praxis C version of Buckhardt. But Buckardt's + version was difficult to read and Gegenfurtner's version had a few + typos which made its results less reliable than Buckhardt's + results. The most important work consisted in retyping the Brent + original PRAXIS program written in Algol W (published with errors, + ommitting the transposition of matrix V before its QR reduction + from Golub. I used the recent "awe" compiler from Gkynn Webster. + The awe library had errors, for example in arc tangent function + which have been fixed. + + The main objective was to get identical results with the three + versions: (1) Algol W, (2) Buckhardt'C version as well (3) + Gegenfürtner C versions on the various test functions published by + Brent in 1973 in Algol W. + + Also, in order to compare them, the random function had to produce + the same sequence for the 3 softwares. The random function used in + imach corresponds to original Brent's random function written in + Algol W. Other point, in Algol W, the arrays of dimension n are + 'normal' mathematical arrays starting from 1 to n. But this is a + real issue in C where, by default, arrays are starting from 0 to + n-1. In Buckhardt, as well as in Gegenfürtner C code, it can be + seen that authors while trying to mimick original Brent Algol W + code are hesitating by changing either a loop originally from 1 to + n in a loop from 0 to n-1, or keeping Brent's loop from 1 to n and + shifting the index from original X(I) in Algol W to x[i-1] in C. + But as IMaCh is using, since the beginning, the Numerical Recipes + functions vector or matrix, I changed Geggenfürtner code to mimick + the original Algol W arrays. Thus the X(I) is translated in C as + x[i] which minimizes the errors. The Golub QR algorithm was + published in Algol with overflow errors which were reproduced in + Brent's Algol W code. Buckhardt code fixed these errors which are + much more problematic in C than in Algol W. Thus Buckhardt code + seems very safe, but i haven't chosen it for IMaCh because the C + style is horrible and almost unreadable compared to Gegenfürtner + CO code which is very close to Brent's original. Also what makes + Buckhardt code more difficult to read is, instead of passing the + minimum of parameters in the functions calls, as it is in Algol + Brent's code or Gegenfürtner's code, the list of parameters is + high. For example, the flin function LONG REAL PROCEDURE FLIN + (LONG REAL VALUE L) has only one parameter in Algol W, the + Gegenfürtner flin function had two parameters: static double + flin(l, j) double l; { int i; double tflin[N];} but Buckhardt + function has 14 parameters which makes the code unreadable and + useless. Gegenfürtner used a lot of static variables or functions + which I tried to minimize. Also in Gegefürtner, array dimensions + were fixed to N. In my adaptation the flin is static double + flin(double l, int j) and the parameter used are global variables. + +2023-06-14 Nicolas Brouard + + * imach.c (Module): Testing if conjugate gradient could be quicker + when lot of variables POWELLORIGINCONJUGATE + +2023-05-23 Nicolas Brouard + + * imach.c (Module): Fixed PROB_r + +2023-05-22 Nicolas Brouard + + * imach.c (Module): In the ILK....txt file, the number of columns + before the covariates values is dependent of the number of states (16+nlstate): 0.99r46 + +2023-05-08 Nicolas Brouard + + * (Module): Error V0 when result:. and model 1+age+V1: fixed + +2023-04-29 Nicolas Brouard + + * imach.c (Module): Inverting the model equation and fixingg bugs + in the drawings + "1+age+V7*V4*age+V6*V4*age+V7*V3*age+V6*V3*age+V6*V2*age+V7*age+V6*age+V4*age+V3*age+V2*age+V7*V4+V6*V4+V7*V3+V6*V3+V7*V2+V6*V2+V7+V6+V4+V3+V2\000\0003+V2" + +2023-04-24 Nicolas Brouard + + * imach.c (Module): some bugs in printinggnuplot + +2022-09-19 Nicolas Brouard + + * imach.c (Module): Version 0.99r42 needed a newer version of + Gnuplot. But newer version 0.99r43 should run with the Gnuplot + version 5.0 or 5.1 distributed with IMaCh. + +2022-09-18 Nicolas Brouard + + * imach.c (Module): Fixing when a state in the data is 0 or higher + than lstate+ndeath. Fixing the plot of contribution to Likelihood. + +2022-09-16 Nicolas Brouard + + * imach.c (Module): 0.99r41 Was an error when product of timevarying and fixed. Using FixedV[of name] now. Thank you Feinuo + +2022-09-14 Nicolas Brouard + + * imach.c (Module): Fixing names of variables in T_ (thanks to Feinuo) + +2022-09-14 Nicolas Brouard + + * imach.c (Module): Version 0.99r39 with colored dummy covariates + (fixed or time varying), using new last columns of + ILK_parameter.txt file. + +2022-09-11 Nicolas Brouard + + * imach.c (Module): Adding timevarying products of any kinds, + should work before shifting cotvar from ncovcol+nqv columns in + order to have a correspondance between the column of cotvar and + the id of column. + (Module): Some cleaning and adding covariates in ILK.txt + +2022-09-09 Nicolas Brouard + + * imach.c (Module): Many improvements for fixing products of fixed + timevarying as well as fixed * fixed, and test with quantitative + covariate. + +2022-09-04 Nicolas Brouard + + * imach.c (Module): Now the easy runs i.e. without result or + model=1+age only did not work. The defautl combination should be 1 + and not 0 because everything hasn't been tranformed yet. + +2022-09-02 Nicolas Brouard + + * imach.c: Version 0.99r35 because it outputs same results with + 1+age+V1+V1*age for females and 1+age for females only + (education=1 noweight) + +2022-08-31 Nicolas Brouard + + * imach.c (Module): Some improvments in fichtm and many verifications 0.99r34 + +2022-08-21 Nicolas Brouard + + * imach.c (Module): Version 0.99r33 A lot of changes in + reassigning covariates: my first idea was that people will always + use the first covariate V1 into the model but in fact they are + producing data with many covariates and can use an equation model + with some of the covariate; it means that in a model V2+V3 instead + of codtabm(k,Tvaraff[j]) which calculates for combination k, for + three covariates (V1, V2, V3) the value of Tvaraff[j], but in fact + the equation model is restricted to two variables only (V2, V3) + and the combination for V2 should be codtabm(k,1) instead of + (codtabm(k,2), and the code should be + codtabm(k,TnsdVar[Tvaraff[j]]. Many many changes have been + made. All of these should be simplified once a day like we did in + hpxij() for example by using precov[nres] which is computed in + decoderesult for each nres of each resultline. Loop should be done + on the equation model globally by distinguishing only product with + age (which are changing with age) and no more on type of + covariates, single dummies, single covariates. + +2022-08-06 Nicolas Brouard + + * imach.c (Module): Version of imach using partly decoderesult to rebuild xpxij function + +2022-08-03 Nicolas Brouard + + * imach.c (Module): Many errors in graphs fixed with Vn*age covariates. + +2022-07-25 Brouard Nicolas + + * imach.c (Module): Error cptcovn instead of nsd in bmij (was + coredumped, revealed by Feiuno, thank you. + 2022-07-23 Nicolas Brouard * r29 W and not sqrt(Wald) @@ -6,6 +181,11 @@ * imach.c (Module): Output of Wald test in the htm file and not only in the log. +2022-06-02 Brouard Nicolas + + * imach.c (Module): Adding the Wald tests from the log to the main + htm for better display of the maximum likelihood estimators. + 2022-05-30 Brouard Nicolas * imach.c: With products of covariates (age or dummies or @@ -767,11 +947,7 @@ lower mortality. 2002-05-30 - * + * imach.c (Module): Add correlation matrix of one-step probabilities and covariance matrix - - - -