Annotation of OpenXM_contrib/PHC/Ada/Continuation/continuation_parameters.adb, Revision 1.1
1.1 ! maekawa 1: package body Continuation_Parameters is
! 2:
! 3: procedure Tune ( estimate_for_condition : in natural ) is
! 4: begin
! 5: condition := estimate_for_condition;
! 6: block_size := 1;
! 7: max_steps := 500*(condition + 1);
! 8: max_reruns := condition + 1;
! 9: predictor_path_type := 0;
! 10: min_path_step_size := 10.0**(-6 - condition/4);
! 11: max_path_step_size := 0.1/(double_float(condition+1));
! 12: success_path_steps := 1 + condition;
! 13: if condition >= 4
! 14: then relative_path_residual := 10.0**( -9 - condition mod 4);
! 15: absolute_path_residual := 10.0**( -9 - condition mod 4);
! 16: relative_path_correction := 10.0**( -9 - condition mod 4);
! 17: absolute_path_correction := 10.0**( -9 - condition mod 4);
! 18: relative_endg_residual := 10.0**(-11 - condition mod 4);
! 19: absolute_endg_residual := 10.0**(-11 - condition mod 4);
! 20: relative_endg_correction := 10.0**(-11 - condition mod 4);
! 21: absolute_endg_correction := 10.0**(-11 - condition mod 4);
! 22: end if;
! 23: Tune_Endgm_Pred(endext_order);
! 24: end Tune;
! 25:
! 26: procedure Tune_Endgm_Pred ( extrapolation_order : in natural ) is
! 27: begin
! 28: if extrapolation_order = 0
! 29: then min_endg_step_size := 10.0**(-8 - condition/4);
! 30: max_endg_step_size := 0.1/(double_float(condition+2));
! 31: success_endg_steps := 3 + condition;
! 32: else if predictor_path_type <= 2
! 33: then predictor_endg_type := 2;
! 34: else predictor_endg_type := 5;
! 35: end if;
! 36: min_endg_step_size := min_path_step_size;
! 37: max_endg_step_size := 0.5;
! 38: reduction_endg_factor := 0.5;
! 39: expansion_endg_factor := 1.7;
! 40: success_endg_steps := 3 + condition;
! 41: end if;
! 42: end Tune_Endgm_Pred;
! 43:
! 44: function Create_for_Path return Pred_Pars is
! 45:
! 46: res : Pred_Pars;
! 47:
! 48: begin
! 49: res.maxstep := max_path_step_size;
! 50: res.minstep := min_path_step_size;
! 51: res.expfac := expansion_path_factor;
! 52: res.redfac := reduction_path_factor;
! 53: res.success_steps := success_path_steps;
! 54: res.predictor_type := predictor_path_type;
! 55: res.dist_target := start_end_game;
! 56: res.power := power_of_t;
! 57: return res;
! 58: end Create_for_Path;
! 59:
! 60: function Create_End_Game return Pred_Pars is
! 61:
! 62: res : Pred_Pars;
! 63:
! 64: begin
! 65: res.maxstep := max_endg_step_size;
! 66: res.minstep := min_endg_step_size;
! 67: res.expfac := expansion_endg_factor;
! 68: res.redfac := reduction_endg_factor;
! 69: res.success_steps := success_endg_steps;
! 70: res.predictor_type := predictor_endg_type;
! 71: res.dist_target := 0.0;
! 72: res.power := power_of_t;
! 73: return res;
! 74: end Create_End_Game;
! 75:
! 76: function Create_for_Path return Corr_Pars is
! 77:
! 78: res : Corr_Pars;
! 79:
! 80: begin
! 81: res.epsrx := relative_path_correction;
! 82: res.epsax := absolute_path_correction;
! 83: res.epsrf := relative_path_residual;
! 84: res.epsaf := absolute_path_residual;
! 85: res.maxit := max_path_iter;
! 86: res.maxtot := max_steps*res.maxit;
! 87: return res;
! 88: end Create_for_Path;
! 89:
! 90: function Create_End_Game return Corr_Pars is
! 91:
! 92: res : Corr_Pars;
! 93:
! 94: begin
! 95: res.epsrx := relative_endg_correction;
! 96: res.epsax := absolute_endg_correction;
! 97: res.epsrf := relative_endg_residual;
! 98: res.epsaf := absolute_endg_residual;
! 99: res.maxit := max_endg_iter;
! 100: res.maxtot := max_steps*res.maxit;
! 101: return res;
! 102: end Create_End_Game;
! 103:
! 104: end Continuation_Parameters;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>