test/Tools/isac/Knowledge/partial_fractions.sml
changeset 59550 2e7631381921
parent 59549 e0e3d41ef86c
child 59562 d50fe358f04a
     1.1 --- a/test/Tools/isac/Knowledge/partial_fractions.sml	Sat Jun 01 11:09:19 2019 +0200
     1.2 +++ b/test/Tools/isac/Knowledge/partial_fractions.sml	Sat Jun 22 13:15:52 2019 +0200
     1.3 @@ -16,6 +16,8 @@
     1.4  "----------- autoCalculate for met_partial_fraction -----";
     1.5  "----------- progr.vers.2: check erls for multiply_ansatz";
     1.6  "----------- progr.vers.2: improve program --------------";
     1.7 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] me ---------";
     1.8 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] auto -------";
     1.9  "--------------------------------------------------------";
    1.10  "--------------------------------------------------------";
    1.11  "--------------------------------------------------------";
    1.12 @@ -25,7 +27,7 @@
    1.13  "----------- why helpless here ? ------------------------";
    1.14  "----------- why helpless here ? ------------------------";
    1.15  val fmz = ["filterExpression (X z = 3 / (z - 1/4 + -1/8 * (1/(z::real))))", 
    1.16 -  "stepResponse (x[n::real]::bool)"];
    1.17 +  "functionName X_z", "stepResponse (x[n::real]::bool)"];
    1.18  val (dI,pI,mI) = ("Isac", ["Inverse", "Z_Transform", "SignalProcessing"], 
    1.19    ["SignalProcessing","Z_Transform","Inverse"]);
    1.20  val (p,_,f,nxt,_,pt)  = CalcTreeTEST [(fmz, (dI,pI,mI))]; 
    1.21 @@ -500,5 +502,94 @@
    1.22       "   eqr = drop_questionmarks eqr;                            " ^(*eqr: A / (z - 1 / 2) + B / (z - -1 / 4)*)
    1.23       "   (pbz::real) = Take eqr;                                  " ^(*pbz: A / (z - 1 / 2) + B / (z - -1 / 4)*)
    1.24       "   pbz = ((Substitute [A = a, B = b]) pbz)                  " ^(*pbz: 4 / (z - 1 / 2) + -4 / (z - -1 / 4)*)
    1.25 -     " in pbz)"
    1.26 +     " in pbz)";
    1.27  
    1.28 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] me ---------";
    1.29 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] me ---------";
    1.30 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] me ---------";
    1.31 +val fmz_from_Subproblem_of_Inverse_sub = (*see --- test [SignalProcessing,Z_Transform,Inverse_s.."*)
    1.32 +     (["functionTerm (3 / (z * (z - 1 / 4 + -1 / 8 * (1 / z))))", "solveFor z",
    1.33 +       "decomposedFunction p_p'''"],
    1.34 +      ("Isac", ["partial_fraction", "rational", "simplification"],
    1.35 +       ["simplification", "of_rationals", "to_partial_fraction"]))
    1.36 +val (p,_,f,nxt,_,pt)  = CalcTreeTEST [(fmz_from_Subproblem_of_Inverse_sub)]; 
    1.37 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.38 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.39 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.40 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.41 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.42 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.43 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.44 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.45 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.46 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.47 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.48 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.49 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.50 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.51 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.52 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.53 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.54 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.55 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.56 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.57 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.58 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.59 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.60 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.61 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.62 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.63 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.64 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.65 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.66 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.67 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.68 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.69 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.70 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.71 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.72 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.73 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.74 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.75 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.76 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.77 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.78 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.79 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.80 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.81 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.82 +val (p,_,f,nxt,_,pt) = me nxt p [] pt; val (p,_,f,nxt,_,pt) = me nxt p [] pt;
    1.83 +
    1.84 +if fst nxt = "End_Proof'" andalso f2str f = "4 / (z - 1 / 2) + -4 / (z - -1 / 4)" then ()
    1.85 +else error "--- isolate SubProblem [simplification, of_rationals, to_partial_fraction] me ---";
    1.86 +
    1.87 +
    1.88 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] auto -------";
    1.89 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] auto -------";
    1.90 +"----------- isolate SubProblem [simplification, of_rationals, to_partial_fraction] auto -------";
    1.91 +reset_states ();
    1.92 +(*val PblObj {fmz_from_Subproblem_of_Inverse_sub, ...} = get_obj I pt (fst p)
    1.93 +  see --- test [SignalProcessing,Z_Transform,Inverse_sub] me = ";*)
    1.94 +
    1.95 +val fmz_from_Subproblem_of_Inverse_sub = (*see --- test [SignalProcessing,Z_Transform,Inverse_s.."*)
    1.96 +     (["functionTerm (3 / (z * (z - 1 / 4 + -1 / 8 * (1 / z))))", "solveFor z",
    1.97 +       "decomposedFunction p_p'''"],
    1.98 +      ("Isac", ["partial_fraction", "rational", "simplification"],
    1.99 +       ["simplification", "of_rationals", "to_partial_fraction"]));
   1.100 +CalcTree [fmz_from_Subproblem_of_Inverse_sub];
   1.101 +Iterator 1;
   1.102 +moveActiveRoot 1;
   1.103 +(*
   1.104 +autoCalculate 1 CompleteCalc;
   1.105 +exception Empty raised (line 429 of "library.ML") TODO during lucin: *)
   1.106 +
   1.107 +(*
   1.108 +trace_script := true;
   1.109 +
   1.110 +@@@ program ["simplification","of_rationals","to_partial_fraction"]
   1.111 +@@@ istate ["
   1.112 +(f_f, 3 / (z * (z - 1 / 4 + -1 / 8 * (1 / z))))","
   1.113 +(zzz, z)"] 
   1.114 +@@@ next   leaf 'Take f_f' ---> STac 'Take (3 / (z * (z - 1 / 4 + -1 / 8 * (1 / z))))'
   1.115 +*)
   1.116 +