# 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 . global fd1, fd2, elim_cnt record result(count, perc_err, actual,prediction,it_previous,it_previous_times_prior_factor,metabolism,it_ksteps,it_fat_other,it_carb_other,it_prot,it_fiber,it_sugar,it_saturated,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,Val_ksteps,Val_fat_other,Val_carb_other,Val_prot,Val_fiber,Val_sugar,Val_saturated,Val_fasted,C_ksteps,C_fat_other,C_carb_other,C_prot,C_fiber,C_sugar,C_saturated,C_fasted,cal_per_gram_carb,cal_per_gram_prot,cal_per_gram_fat,cal_per_ksteps) class result_list(list_in,list_out,list_elim) method dosort() # write("*list_in = ", *list_in) list_out := sortf(list_in, 2) # write("*list_out = ", *list_out) # lister("list_out", list_out) end method eliminate() # write("elim_cnt = ", elim_cnt) low := elim_cnt high := *list_out - (2 * elim_cnt) + 1 # write("low = ", low) # write("high = ", high) list_elim := list_out[1 : high] # write("*list_elim = ", *list_elim) # lister("list_elim", list_elim) end method dosave() sum := 0 while it := pop(list_elim) do { # write("in dosave perc_err = ",it.perc_err) write(fd2, right(it.count,32) , right( it.perc_err,32) , right( it.actual,32) , right(it.prediction,32) , right(it.it_previous,32) , right(it.it_previous_times_prior_factor,32), right(it.metabolism,32) , right(it.it_ksteps,32) , right(it.it_fat_other,32) , right(it.it_carb_other,32) , right(it.it_prot,32) , right(it.it_fiber,32) , right(it.it_sugar,32) , right(it.it_saturated,32) , right(it.it_fasted,32) , right(it.order2,32) , right( it.delta_method,32) , right( it.kstep_method,32) , right( it.recommended_ksteps,32) , right( it.kstep_exponent,32) , right( it.kstep_factor,32) , right( it.recommended_fat,32) , right( it.recommended_carb,32) , right( it.recommended_prot,32) , right( it.recommended_fiber,32) , right( it.recommended_sugar,32) , right( it.recommended_saturated ,32) , right(it.factor1,32) , right( it.factor2,32) , right( it.recommended_fasted,32) , right(it.prior_factor,32) , right(it.fasted_factor,32) , right(it.eliminate_extremes,32),right(it.Val_ksteps,32),right(it.Val_fat_other,32),right(it.Val_carb_other,32),right(it.Val_prot,32),right(it.Val_fiber,32),right(it.Val_sugar,32),right(it.Val_saturated,32),right(it.Val_fasted,32),right(it.C_ksteps,32),right(it.C_fat_other,32),right(it.C_carb_other,32),right(it.C_prot,32),right(it.C_fiber,32),right(it.C_sugar,32),right(it.C_saturated,32),right(it.C_fasted,32),right(it.cal_per_gram_carb,32),right(it.cal_per_gram_prot,32),right(it.cal_per_gram_fat,32),right(it.cal_per_ksteps,32)) } end method all() dosort() eliminate() dosave() end initially local i i := 0 list_in := [] # write("elim_cnt = ",elim_cnt) while it := get_result() do { # write("after getresult it.count = ", it.count) # write("after getresult it.perc_err = ", it.perc_err) # write("after getresult it.actual = ", it.actual) # write("after getresult it.prediction = ", it.prediction) # write("after getresult it.metabolism = ", it.metabolism) if it.count > 0 then { i +:= 1 # write("i = ", i) list_in |||:= [it] } else { # write("after getresult B it.count = ", it.count) # write("after getresult B it.perc_err = ", it.perc_err) # write("after getresult B it.actual = ", it.actual) # write("after getresult B it.prediction = ", it.prediction) # write("after getresult B it.metabolism = ", it.metabolism) # lister("list_in = ", list_in) break } # return } end procedure get_result() # write("HERE HERE") # if &trace < 10000 then exit count := real(read(fd1)) perc_err := real(read(fd1)) actual := real(read(fd1)) # write("count = ", count) prediction := real(read(fd1)) it_previous := real(read(fd1)) it_previous_times_prior_factor := real(read(fd1)) metabolism := real(read(fd1)) it_ksteps := real(read(fd1)) it_fat_other := real(read(fd1)) it_carb_other := real(read(fd1)) it_prot := real(read(fd1)) it_fiber := real(read(fd1)) it_sugar := real(read(fd1)) it_saturated := real(read(fd1)) it_fasted := real(read(fd1)) order2 := real(read(fd1)) delta_method := real(read(fd1)) kstep_method := real(read(fd1)) recommended_ksteps := real(read(fd1)) kstep_exponent := real(read(fd1)) kstep_factor := real(read(fd1)) recommended_fat := real(read(fd1)) recommended_carb := real(read(fd1)) recommended_prot := real(read(fd1)) recommended_fiber := real(read(fd1)) recommended_sugar := real(read(fd1)) recommended_saturated := real(read(fd1)) factor1 := real(read(fd1)) factor2 := real(read(fd1)) recommended_fasted := real(read(fd1)) prior_factor := real(read(fd1)) fasted_factor := real(read(fd1)) eliminate_extremes := real(read(fd1)) Val_ksteps := real(read(fd1)) Val_fat_other := real(read(fd1)) Val_carb_other := real(read(fd1)) Val_prot := real(read(fd1)) Val_fiber := real(read(fd1)) Val_sugar := real(read(fd1)) Val_saturated := real(read(fd1)) Val_fasted := real(read(fd1)) C_ksteps := real(read(fd1)) C_fat_other := real(read(fd1)) C_carb_other := real(read(fd1)) C_prot := real(read(fd1)) C_fiber := real(read(fd1)) C_sugar := real(read(fd1)) C_saturated := real(read(fd1)) C_fasted := real(read(fd1)) cal_per_gram_carb := real(read(fd1)) cal_per_gram_prot := real(read(fd1)) cal_per_gram_fat := real(read(fd1)) cal_per_ksteps := real(read(fd1)) return result(count, perc_err, actual,prediction,it_previous,it_previous_times_prior_factor,metabolism,it_ksteps,it_fat_other,it_carb_other,it_prot,it_fiber,it_sugar,it_saturated,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,Val_ksteps,Val_fat_other,Val_carb_other,Val_prot,Val_fiber,Val_sugar,Val_saturated,Val_fasted,C_ksteps,C_fat_other,C_carb_other,C_prot,C_fiber,C_sugar,C_saturated,C_fasted,cal_per_gram_carb,cal_per_gram_prot,cal_per_gram_fat,cal_per_ksteps) end procedure lister(name,listed) i := 1 while i <= *listed do { # write(name,"[", i, "]", listed[i]) i +:= 1 } end procedure main() &dump := 0 &trace := 0 fd1 := open("summary2.txt","r") fd2 := open("summary3.txt","w") fd_rec := open("recommended.txt","r") recommended_ksteps := read(fd_rec) kstep_exponent := read(fd_rec) kstep_adj := read(fd_rec) recommended_fat := read(fd_rec) recommended_carb := read(fd_rec) recommended_prot := read(fd_rec) recommended_fiber := read(fd_rec) recommended_sugar := read(fd_rec) recommended_saturated := read(fd_rec) delta_method := read(fd_rec) kstep_method := read(fd_rec) order2 := read(fd_rec) factor1 := read(fd_rec) factor2 := read(fd_rec) result_file := read(fd_rec) recommended_fasted := read(fd_rec) prior_factor := read(fd_rec) fasted_factor := read(fd_rec) elim_cnt := integer(read(fd_rec)) # write("eliminate = ", elim_cnt) work := result_list() work.all() close(fd1) close(fd2) close(fd_rec) return end