* Copyright (C) 2023 Dennis J. Darland * This file is part of Dennis J Darland's Glucose Prediction Software. * It is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * This is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * You should have received a copy of the GNU General Public License * along with it. If not, see . &DUMP = 0 &TRACE = 0 datechar = "0123456789/" echo = 0 dig = "0123456789.-" eqno = 1 OUTPUT('out',3,128,'relate_several_cross_out5.mxt') OUT = 'low_actual := 99999999.0;' OUT = 'low_prediction := 99999999.0;' OUT = 'high_actual := 0.0;' OUT = 'high_prediction := 0.0;' TRACE('prediction') TRACE('C_ksteps') TRACE('C2_ksteps') TRACE('equation') OUT = "# Copyright (C) 2023 Dennis J. Darland" OUT = "# This file is part of Dennis J Darland's Glucose Prediction Software." OUT = "# darland's philosophy is free software: you can redistribute it and/or modify" OUT = "# it under the terms of the GNU General Public License as published by" OUT = "# the Free Software Foundation, either version 3 of the License, or" OUT = "# (at your option) any later version." OUT = "# This is distributed in the hope that it will be useful, " OUT = "# but WITHOUT ANY WARRANTY; without even the implied warranty of" OUT = "# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the" OUT = "# GNU General Public License for more details." OUT = "# You should have received a copy of the GNU General Public License" OUT = "# along with darland's philosophy. If not, see ." INPUT('recommended',2,128,'recommended.txt') recommended_ksteps = recommended kstep_exponent = recommended kstep_factor = recommended recommended_fat = recommended recommended_carb = recommended recommended_prot = recommended recommended_fiber = recommended recommended_sugar = recommended recommended_saturated = recommended delta_method = recommended kstep_method = recommended order2 = recommended factor1 = recommended factor2 = recommended result_file = recommended recommended_fasted = recommended prior_factor = recommended fasted_factor = recommended eliminate_extremes = recommended metabolism = recommended cal_per_gram_carb = recommended cal_per_gram_prot = recommended cal_per_gram_fat = recommended cal_per_ksteps = recommended recommended_carb_other = recommended_carb - recommended_fiber - recommended_sugar recommended_fat_other = recommended_fat - recommended_saturated out = 'recommended_ksteps := ' recommended_ksteps ';' out = 'kstep_exponent := ' kstep_exponent ';' out = 'kstep_factor := ' kstep_factor ';' out = 'recommended_fat := ' recommended_fat ';' out = 'recommended_carb := ' recommended_carb ';' out = 'recommended_prot := ' recommended_prot ';' out = 'recommended_fiber := ' recommended_fiber ';' out = 'recommended_sugar := ' recommended_sugar ';' out = 'recommended_saturated := ' recommended_saturated ';' out = 'delta_method := ' delta_method ';' out = 'kstep_method := ' kstep_method ';' out = 'order2 := ' order2 ';' out = 'factor1 := ' factor1 ';' out = 'factor2 := ' factor2 ';' out = 'fasted_factor := ' fasted_factor ';' out = 'recommended_fasted := ' recommended_fasted ';' out = 'recommended_carb_other := ' recommended_carb_other ';' out = 'recommended_fat_other := ' recommended_fat_other ';' out = 'eliminate_extremes := ' eliminate_extremes ';' out = 'cal_per_gram_carb := ' cal_per_gram_carb ';' out = 'cal_per_gram_fat := ' cal_per_gram_fat ';' out = 'cal_per_gram_prot := ' cal_per_gram_prot ';' out = 'cal_per_ksteps := ' cal_per_ksteps ';' INPUT('results_cross',9,128,result_file) C_ksteps = results_cross C_fat_other = results_cross C_carb_other = results_cross C_protein = results_cross C_fiber = results_cross C_sugar = results_cross C_saturated = results_cross C_fasted = results_cross * C_metabolism = results_cross C2_ksteps = results_cross C2_fat_Other = results_cross C2_carb_Other = results_cross C2_protein = results_cross C2_fiber = results_cross C2_sugar = results_cross C2_saturated = results_cross C2_ksteps_fat_other = results_cross C2_carb_other_fat_other = results_cross C2_protein_fat_other = results_cross C2_fiber_fat_other = results_cross C2_sugar_fat_other = results_cross C2_saturated_fat_other = results_cross C2_ksteps_carb_other = results_cross C2_protein_carb_other = results_cross C2_fiber_carb_other = results_cross C2_sugar_carb_other = results_cross C2_saturated_carb_other = results_cross C2_ksteps_protein = results_cross C2_fiber_protein = results_cross C2_sugar_protein = results_cross C2_saturated_protein = results_cross C2_ksteps_fiber = results_cross C2_sugar_fiber = results_cross C2_saturated_fiber = results_cross C2_ksteps_sugar = results_cross C2_saturated_sugar = results_cross C2_ksteps_saturated = results_cross ############### OUT = "prior_factor := " prior_factor ";" OUT = "fasted_factor := " fasted_factor ";" OUT = "count := 0.0;" OUT = "min_perc_err := 99999999.0;" OUT = "max_perc_err := 0;" OUT = "tot_perc_err := 0;" OUT = "C_ksteps := " C_Ksteps ";" OUT = "C_fat_other := " C_Fat_other ";" OUT = "C_carb_other := " C_Carb_other ";" OUT = "C_protein := " C_Protein ";" OUT = "C_fiber := " C_Fiber ";" OUT = "C_sugar := " C_Sugar ";" OUT = "C_saturated := " C_Saturated ";" OUT = "C_fasted := " C_Fasted ";" * OUT = "C_metabolism:= " C_Metabolism ";" LT(order2,2) :s(skip3) OUT = "C2_ksteps := " C2_Ksteps ";" OUT = "C2_fat_other := " C2_Fat_other ";" OUT = "C2_carbl_other := " C2_Carb_other ";" OUT = "C2_protein := " C2_Protein ";" OUT = "C2_fiber := " C2_Fiber ";" OUT = "C2_sugar := " C2_Sugar ";" OUT = "C2_saturated := " C2_Saturated ";" LT(order2,3) :s(skip3) OUT = "C2_ksteps_fat_other := " C2_ksteps_Fat_other ";" OUT = "C2_carb_other_fat_other := " C2_Carb_other_Fat_other ";" OUT = "C2_protein_fat_other := " C2_Protein_Fat_other ";" OUT = "C2_fiber_fat_other := " C2_Fiber_Fat_other ";" OUT = "C2_sugar_fat_other := " C2_Sugar_Fat_other ";" OUT = "C2_saturated_fat_other := " C2_Saturated_Fat_other ";" OUT = "C2_ksteps_carb_other := " C2_ksteps_Carb_other ";" OUT = "C2_protein_carb_other := " C2_Protein_Carb_other ";" OUT = "C2_fiber_carb_other := " C2_Fiber_Carb_other ";" OUT = "C2_sugar_carb_other := " C2_Sugar_Carb_other ";" OUT = "C2_saturated_carb_other := " C2_Saturated_Carb_other ";" OUT = "C2_ksteps_protein := " C2_ksteps_Protein ";" OUT = "C2_fiber_protein := " C2_Fiber_Protein ";" OUT = "C2_sugar_protein := " C2_Sugar_Protein ";" OUT = "C2_saturated_protein := " C2_Saturated_Protein ";" OUT = "C2_ksteps_fiber := " C2_ksteps_Fiber ";" OUT = "C2_sugar_fiber := " C2_Sugar_Fiber ";" OUT = "C2_saturated_fiber := " C2_Saturated_Fiber ";" OUT = "C2_ksteps_sugar := " C2_ksteps_Sugar ";" OUT = "C2_saturated_sugar := " C2_Saturated_Sugar ";" OUT = "C2_ksteps_saturated := " C2_ksteps_Saturated ";" ########## skip3 LINE = INPUT :F(END) TOP2 LINE = INPUT :F(FINISH) TOP LINE SPAN(datechar) . occurred ARB . part1 RPOS(0) :f(TOP2) part1 SPAN(' \t') SPAN(dig) . glucose ARB . part2 RPOS(0) part2 SPAN(' \t') SPAN(dig) . pglucose ARB . part3 RPOS(0) part3 SPAN(' \t') SPAN(dig) . cal ARB . part4 RPOS(0) part4 SPAN(' \t') SPAN(dig) . ksteps ARB . part5 RPOS(0) part5 SPAN(' \t') SPAN(dig) . fat ARB . part6 RPOS(0) part6 SPAN(' \t') SPAN(dig) . carb ARB . part7 RPOS(0) part7 SPAN(' \t') SPAN(dig) . prot ARB . part8 RPOS(0) part8 SPAN(' \t') SPAN(dig) . fiber ARB . part9 RPOS(0) part9 SPAN(' \t') SPAN(dig) . sugar ARB . part10 RPOS(0) part10 SPAN(' \t') SPAN(dig) . saturated ARB . part11 RPOS(0) part11 SPAN(' \t') SPAN(dig) . fasted ARB RPOS(0) OUT = 'ksteps := ' ksteps ';' OUT = 'kstep_factor := ' kstep_factor ';' OUT = 'fat := ' fat ';' OUT = 'carb := ' carb ';' OUT = 'prot := ' prot ';' OUT = 'fiber := ' fiber ';' OUT = 'sugar := ' sugar ';' OUT = 'saturated := ' saturated ';' OUT = 'fasted := ' fasted ';' OUT = 'fat_other := ' fat - saturated ';' OUT = 'carb_other := ' carb - fiber - sugar ';' didk1 eq(delta_method,3) :s(method3) eq(delta_method,1) :s(method1) OUT = 'delta_ksteps := ((' recommended_ksteps ' - ' ksteps ') * ' kstep_factor ' ) / ' recommended_ksteps ' / recommended_ksteps ;' OUT = 'delta_fat_other := (fat_other - recommended_fat_other) / recommended_fat_other / recommended_fat_other;' OUT = 'delta_carb_other := (carb_other - recommended_carb_other) / recommended_carb_other / recommended_carb_other;' OUT = 'delta_prot := (prot - recommended_prot) / recommended_prot / recommended_prot;' OUT = 'delta_fiber := (fiber - recommended_fiber) / recommended_fiber / recommended_fiber;' OUT = 'delta_sugar := (sugar - recommended_sugar) / recommended_sugar / recommended_sugar;' OUT = 'delta_saturated := (saturated - recommended_saturated) / recommended_saturated / recommended_saturated;' OUT = 'delta_fasted := (fasted - recommended_fasted) * fasted_factor / recommended_fasted / recommended_fasted;' :(didm2) method1 OUT = 'delta_ksteps := ((' recommended_ksteps ' - ' ksteps ') * ' kstep_factor ' ) / ' recommended_ksteps ' ;' OUT = 'delta_fat_other := (fat_other - recommended_fat_other) / recommended_fat_other;' OUT = 'delta_carb_other := (carb_other - recommended_carb_other) / recommended_carb_other;' OUT = 'delta_prot := (prot - recommended_prot) / recommended_prot;' OUT = 'delta_fiber := (fiber - recommended_fiber) / recommended_fiber;' OUT = 'delta_sugar := (sugar - recommended_sugar) / recommended_sugar;' OUT = 'delta_saturated := (saturated - recommended_saturated) / recommended_saturated;' OUT = 'delta_fasted := (fasted - recommended_fasted) * fasted_factor / recommended_fasted ;' :(didm2) method3 OUT = 'delta_ksteps := (recommended_ksteps - ksteps) * kstep_factor;' OUT = 'delta_fat_other := (fat_other - recommended_fat_other);' OUT = 'delta_carb_other := (carb_other - recommended_carb_other);' OUT = 'delta_prot := (prot - recommended_prot);' OUT = 'delta_fiber := (fiber - recommended_fiber);' OUT = 'delta_sugar := (sugar - recommended_sugar);' OUT = 'delta_saturated := (saturated - recommended_saturated);' OUT = 'delta_fasted := (fasted - recommended_fasted) * fasted_factor;' didm2 OUT = 'it_previous := ' pglucose ';' OUT = 'metabolism := ' metabolism ';' OUT = 'it_ksteps := (C_ksteps) * (delta_ksteps);' OUT = 'it_fat_other := factor1 * ( C_fat_other ) * ( (delta_fat_other) );' OUT = 'it_carb_other := factor1 * ( C_carb_other ) * ( (delta_carb_other) );' OUT = 'it_prot := factor1 * ( C_protein ) * ( (delta_prot) );' OUT = 'it_fiber := factor1 * ( C_fiber ) * ( (delta_fiber) );' OUT = 'it_sugar := factor1 * ( C_sugar ) * ( (delta_sugar) );' OUT = 'it_saturated := factor1 * ( C_saturated ) * ( (delta_saturated) );' OUT = 'it_fasted := ( C_fasted ) * ( (delta_fasted) );' * OUT = 'it_metabolism := factor1 * ( C_metabolism ); ' OUT = 'prediction := evalf(it_previous * prior_factor' OUT = ' + metabolism' OUT = ' + it_ksteps * cal_per_ksteps' OUT = ' + it_fat_other * cal_per_gram_fat' OUT = ' + it_carb_other * cal_per_gram_carb' OUT = ' + it_prot * cal_per_gram_prot' OUT = ' + it_fiber * cal_per_gram_carb' OUT = ' + it_sugar * cal_per_gram_carb' OUT = ' + it_saturated * cal_per_gram_fat' OUT = ' + it_fasted);' OUT = 'it_previous := ' pglucose ';' OUTPUT = "before 1A order = " order2 LE(order2,1) :s(DOING_1A) OUTPUT = " DOING 2A" OUT = " + " factor2 " * (" C2_ksteps ") * (" (delta_ksteps) ") * (" (delta_ksteps) ")" OUT = " + " factor2 " * (" C2_fat_other ") * (" (delta_fat_other) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_carb_other ") * (" (delta_carb_other) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_protein ") * (" (delta_prot) ") * (" (delta_prot) ")" OUT = " + " factor2 " * (" C2_fiber ") * (" (delta_fiber) ") * (" (delta_fiber) ")" OUT = " + " factor2 " * (" C2_sugar ") * (" (delta_sugar) ") * (" (delta_sugar) ")" OUT = " + " factor2 " * (" C2_saturated ") * (" (delta_saturated) ") * (" (delta_saturated) ")" LE(order2,2) :s(DOING_1A) OUT = " + " factor2 " * (" C2_ksteps_fat_other ") * (" (delta_ksteps) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_carb_other_fat_other ") * (" (delta_carb_other) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_protein_fat_other ") * (" (delta_prot) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_fiber_fat_other ") * (" (delta_fiber) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_sugar_fat_other ") * (" (delta_sugar) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_saturated_fat_other ") * (" (delta_saturated) ") * (" (delta_fat_other) ")" OUT = " + " factor2 " * (" C2_ksteps_carb_other ") * (" (delta_ksteps) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_protein_carb_other ") * (" (delta_prot) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_fiber_carb_other ") * (" (delta_fiber) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_sugar_carb_other ") * (" (delta_sugar) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_saturated_carb_other ") * (" (delta_saturated) ") * (" (delta_carb_other) ")" OUT = " + " factor2 " * (" C2_ksteps_protein ") * (" (delta_ksteps) ") * (" (delta_prot) ")" OUT = " + " factor2 " * (" C2_fiber_protein ") * (" (delta_fiber) ") * (" (delta_prot) ")" OUT = " + " factor2 " * (" C2_sugar_protein ") * (" (delta_sugar) ") * (" (delta_prot) ")" OUT = " + " factor2 " * (" C2_saturated_protein ") * (" (delta_saturated) ") * (" (delta_prot) ")" OUT = " + " factor2 " * (" C2_ksteps_fiber ") * (" (delta_ksteps) ") * (" (delta_fiber) ")" OUT = " + " factor2 " * (" C2_sugar_fiber ") * (" (delta_sugar) ") * (" (delta_fiber) ")" OUT = " + " factor2 " * (" C2_saturated_fiber ") * (" (delta_saturated) ") * (" (delta_fiber) ")" OUT = " + " factor2 " * (" C2_ksteps_sugar ") * (" (delta_ksteps) ") * (" (delta_sugar) ")" OUT = " + " factor2 " * (" C2_saturated_sugar ") * (" (delta_saturated) ") * (" (delta_sugar) ")" OUT = " + " factor2 " * (" C2_ksteps_saturated ") * (" (delta_ksteps) ") * (" (delta_saturated) ")" DOING_1A OUTPUT = "DID 1A" OUTPUT = "eqno = " eqno OUTPUT = "equation = " equation eqno = eqno + 1 OUT = 'actual := ' glucose ';' OUT = 'previous := ' pglucose ';' OUT = 'err := abs(prediction - actual);' OUT = 'perc_err := abs(err * 100.0) / actual;' OUT = 'delta_glucose := abs(previous - actual);' OUT = 'perc_delta := (delta_glucose * 100.0) / actual;' OUT = 'if (perc_err < min_perc_err) then min_perc_err := perc_err; fi;' OUT = 'if (perc_err > max_perc_err) then max_perc_err := perc_err; fi;' OUT = 'tot_perc_err := tot_perc_err + perc_err;' OUT = 'if (actual < low_actual) then low_actual := actual; fi;' OUT = 'if (actual > high_actual) then high_actual := actual; fi;' OUT = 'if (prediction < low_prediction) then low_prediction := prediction; fi;' OUT = 'if (prediction > high_prediction) then high_prediction := prediction; fi;' OUT = 'count := count + 1.0;' * This becomes row in table2 out = 'out2 := [count, perc_err, actual,prediction,it_previous,it_previous * prior_factor,metabolism,it_ksteps * cal_per_ksteps,it_fat_other*cal_per_gram_fat,it_carb_other*cal_per_gram_carb,it_prot*cal_per_gram_prot,it_fiber*cal_per_gram_carb,it_sugar*cal_per_gram_carb,it_saturated*cal_per_gram_fat,it_fasted,order2, delta_method, kstep_method, recommended_ksteps, kstep_exponent, kstep_factor, recommended_fat, recommended_carb, recommended_prot, recommended_fiber, recommended_sugar, recommended_saturated ,factor1, factor2, recommended_fasted,prior_factor,fasted_factor,eliminate_extremes,ksteps,fat_other,carb_other,prot,fiber,sugar,saturated,fasted,C_ksteps,C_fat_other,C_carb_other,C_protein,C_fiber,C_sugar,C_saturated,C_fasted,cal_per_gram_carb,cal_per_gram_prot,cal_per_gram_fat,cal_per_ksteps];' out = 'writedata("OUT/out' eqno '_work.tmp", out2);' LINE = INPUT :S(TOP) FINISH OUT = 'order2 := ' order2 ';' OUT = 'factor1 := ' factor1 ';' OUT = 'factor2 := ' factor2 ';' OUT = 'delta_method := ' delta_method ';' OUT = 'kstep_method := ' kstep_method ';' OUT = 'recommended_ksteps := ' recommended_ksteps ';' OUT = 'kstep_exponent := ' kstep_exponent ';' OUT = 'kstep_factor := ' kstep_factor ';' OUT = 'recommended_fat := ' recommended_fat ';' OUT = 'recommended_carb := ' recommended_carb ';' OUT = 'recommended_prot := ' recommended_prot ';' OUT = 'recommended_fiber := ' recommended_fiber ';' OUT = 'recommended_sugar := ' recommended_sugar ';' OUT = 'recommended_saturated := ' recommended_saturated ';' OUT = 'recommended_fasted := ' recommended_fasted ';' OUT = 'print("max_perc_err := ", max_err);' OUT = 'ave_perc_err := tot_perc_err / count;' OUT = 'print("min_max_how_good := ", 100.0 / max_how_good);' * this becomes row in table.html OUT = 'out := [ave_perc_err, min_perc_err, max_perc_err, low_actual,high_actual,low_prediction,high_prediction, order2, delta_method, kstep_method, recommended_ksteps, kstep_exponent, kstep_factor, recommended_fat, recommended_carb, recommended_prot, recommended_fiber, recommended_sugar, recommended_saturated ,factor1, factor2, recommended_fasted,prior_factor,fasted_factor,eliminate_extremes,metabolism];' OUT = 'writedata("entry_work.txt", out);' out = 'out2 := [0, 0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];' out = 'writedata("OUT/out___________work.tmp", out2);' OUT = "quit;" END