Commit 51d529b2 authored by Jan Kiene's avatar Jan Kiene
Browse files

Merge branch 'ci/complexity-plotting-with-reference' into 'main'

[BASOP-CI] complexity plotting with reference

See merge request !1887
parents 5427da14 7300368e
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -425,6 +425,12 @@ def create_display_strings(

        displays.append(display)

    if which == "wmops_per_op":
        assert len(displays) == 4
        # flot.js' "stack: true" depends on the order of data arrays
        # reorder here instead of reworking above loop
        displays = [displays[0], displays[2], displays[1], displays[3]]

    return displays


+92 −29
Original line number Diff line number Diff line
@@ -648,18 +648,21 @@ function WMOPS_perOP() {
        previousPoint = item.datapoint;
        $("#tooltip").remove();

        var encData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
        var decData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];          
        var encData, decData;
        var encRefData, decRefData;
        var text = "";

        if (Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays.length == 2) {
          encData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
          decData  = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];

          var x = item.datapoint[0];
          var y = item.datapoint[1];

        var scoreEnc = parseFloat(encData.data[x][1]);
        var scoreDec = parseFloat(decData.data[x][1]);
          var scoreEnc = Math.max(parseFloat(encData.data[x][1]), 0);
          var scoreDec = Math.max(parseFloat(decData.data[x][1]), 0);
          var scoreCodec = Math.round((scoreEnc + scoreDec) * 100) / 100;

        var text = "";

          text += "<b><u>Mode: " + Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x].operatingPoint + "</u></b><br>";

          text += 'Score: ' + Math.round(y * 100) / 100;
@@ -672,14 +675,62 @@ function WMOPS_perOP() {
            text += " (enc + dec)";
          } 
          text += "<br><br>";
      
          text += "Worst case enc: "   + scoreEnc + " WMOPS<br>";
          text += "Worst case dec: "   + scoreDec + " WMOPS<br>";
          text += "Worst case codec: " + scoreCodec + " WMOPS<br><br>";

          var nEntriesWmopsGraph = Graphs_WMOPS.wmops_worstcase.runs.length - 1;
          text += "<a href=\"logs/" + Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].logFile + "\">Logfile</a><br>";
        }
        else if (Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays.length == 4) {
          encData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[0];
          decData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[2];

          encRefData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[1];
          decRefData = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays[3];

          var x = item.datapoint[0];
          var y = item.datapoint[1];

          var run = Graphs_WMOPS_perOP.wmops_worstcase_per_op.runs[x];
          var codec = run.codec;
          var op = run.operatingPoint;

          var scoreEnc, scoreDec;

          if (codec == "FLT REF")
          {
            x = (x - 1) / 2;
            scoreEnc = Math.max(parseFloat(encRefData.data[x][1]), 0);
            scoreDec = Math.max(parseFloat(decRefData.data[x][1]), 0);
          }
          else if (codec == "BASOP") {
            x = x / 2;
            scoreEnc = Math.max(parseFloat(encData.data[x][1]), 0);
            scoreDec = Math.max(parseFloat(decData.data[x][1]), 0);
          }

          var scoreCodec = Math.round((scoreEnc + scoreDec) * 100) / 100;

          text += "<b><u>Mode: " + op + " - " + codec + "</u></b><br>";

          text += 'Score: ' + Math.round(y * 100) / 100;
          if (graph.direction == -1)
            text += " WMOPS";
          if( item.series.id == "worstCaseEnc" ){
            text += " (enc)";
          } 
          if( item.series.id == "worstCaseDec" ){
            text += " (enc + dec)";
          } 
          text += "<br><br>";
          text += "Worst case enc: "   + scoreEnc + " WMOPS<br>";
          text += "Worst case dec: "   + scoreDec + " WMOPS<br>";
          text += "Worst case codec: " + scoreCodec + " WMOPS<br><br>";

          var nEntriesWmopsGraph = Graphs_WMOPS.wmops_worstcase.runs.length - 1;
          text += "<a href=\"logs/" + Graphs_WMOPS.wmops_worstcase.runs[nEntriesWmopsGraph].logFile + "\">Logfile</a><br>";
        }
        showToolTip(item.pageX, item.pageY, text);

      });
@@ -689,7 +740,19 @@ function WMOPS_perOP() {

    $(document).ready(function () {
        // need to get worst case of enc + dec combined, because values are stacked in the graph
        var max = get_max_y_val_for_plotting(Graphs_WMOPS.wmops_worstcase.displays, 50);
        var displays = Graphs_WMOPS_perOP.wmops_worstcase_per_op.displays;
        var encData, decData;
        if (displays.length == 2) {
            encData = [displays[0]];
            decData = [displays[1]];
        }
        else if (displays.length == 4) {
            encData = [displays[0], displays[2]];
            decData = [displays[1], displays[3]];
        }
        var max_enc = get_max_y_val_for_plotting(encData, 1);
        var max_dec = get_max_y_val_for_plotting(decData, 1);
        var max = Math.ceil( (max_enc + max_dec ) / 50) * 50;
        drawGraph($("#wmops_per_op-graph"), Graphs_WMOPS_perOP.wmops_worstcase_per_op, max);
    });