Exemple #1
0
  /**
   * Ciclo dei comandi per il fitting.
   *
   * @throws IOException
   */
  private static void fit_cycle() throws IOException {
    boolean fit_cycle = true;
    while (fit_cycle) {
      out.print("fittin>> ");
      String cmd2 = in.readLine().trim();
      if (cmd2.equals("exit")) {
        fit_cycle = false;
        out.println("exit fit menu...\n");
        continue;
      }
      String[] p = cmd2.split(" ");
      // si stampano i fitters
      if (p[0].equals("fitters")) {
        for (LinearFitter fit : fitter_man.getFitters().values()) {
          out.print("\tID: " + fit.getId() + " - N: " + fit.getN());
          for (Variable v : fit.getVariables().values()) {
            out.print("\n\t\tVariable: " + v.getId() + " - N: " + v.getN());
          }
          out.println();
        }
        continue;
      }

      if (p.length < 2) {
        out.println("\tInserire nome del fitter\n");
        continue;
      }
      String f = p[1];
      try {
        // comandi
        switch (p[0]) {
          case "create":
            fitter_man.addLinearFitter(f);
            out.println("\tCreato fitter: " + f + "\n");
            break;
          case "add-variables":
            LinearFitter fitter = fitter_man.getLinearFitter(f);
            out.println("Inserire un id variabile e premere invio. (exit) per uscire...");
            // si inseriscono i valori
            boolean ok = true;
            int i = 1;
            while (ok) {
              out.print("\tvalue-" + f + "-" + i + ">> ");
              String s = in.readLine();
              if (s.equals("")) {
                continue;
              }
              if (s.equals("exit")) {
                ok = false;
                break;
              }
              if (data.containsVariable(s)) {
                Variable v = data.getVariable(s);
                if (v instanceof VariableXY) {
                  // si aggiunte
                  fitter.addVariable((VariableXY) v);
                } else {
                  out.println("Inserire una variabile di tipo XY...");
                }
              } else {
                out.println("Inserire un id variable valido...");
              }
              i++;
            }
            out.println();
            break;
          case "remove-variables":
            if (p.length < 3) {
              out.println(
                  "data>> Inserire parametri:\n" + " id fitter, variabile-xy da rimuovere\n");
              continue;
            }
            LinearFitter fitter1 = fitter_man.getLinearFitter(f);
            Variable v = data.getVariable(p[2]);
            if (v instanceof VariableXY) {
              double x = ((VariableXY) v).getX();
              fitter_man.removeVariableFromFitter(f, x);
              out.println("Rimossa variabile " + p[2] + " da fitter: " + f);
            } else {
              out.println("Inserire una variabile di tipo XY...");
            }
            break;
          case "remove-fitter":
            if (fitter_man.removeLinearFitter(f)) {

              out.println("Rimosso fitter: " + f);
            } else {
              out.println("Fitter non trovato: " + f);
            }
          case "fit-sigma-costant":
            // fitting con sigma per y costante
            // si legge il terzo parametro
            if (p.length < 3) {
              out.println(
                  "data>> Inserire parametri:\n" + " id fitter, sigma da utilizzare per le Y\n");
              continue;
            }
            double sigmay = Double.parseDouble(p[2]);
            // si effettua il fitting
            LinearFitter fitt = fitter_man.getLinearFitter(f);
            double[] e = fitt.fit_sigma_costant(sigmay);
            // si stampano i risultati
            out.println("A: ....................." + df.format(e[0]));
            out.println("B: ....................." + df.format(e[1]));
            out.println("Sigma-A: ..............." + df.format(e[2]));
            out.println("Sigma-B: ..............." + df.format(e[3]));
            out.println("Sigma-AB: .............." + df.format(e[4]));
            out.println();
            break;
          case "fit":
            // fittin pesato con i sigma delle variabili
            // si effettua il fitting
            LinearFitter fitte = fitter_man.getLinearFitter(f);
            double[] g = fitte.fit();
            // si stampano i risultati
            out.println("A: ....................." + df.format(g[0]));
            out.println("B: ....................." + df.format(g[1]));
            out.println("Sigma-A: ..............." + df.format(g[2]));
            out.println("Sigma-B: ..............." + df.format(g[3]));
            out.println("Sigma-AB: .............." + df.format(g[4]));
            out.println();
            break;
          default:
            out.println("Inserire comando valido!");
        }
      } catch (Exception e) {
        out.println(e.getMessage());
        continue;
      }
    }
  }