Skip to content

Instantly share code, notes, and snippets.

@cmelchior
Created September 24, 2025 15:42
Show Gist options
  • Save cmelchior/8670fb5d3b8df75b801405a6b53e4175 to your computer and use it in GitHub Desktop.
Save cmelchior/8670fb5d3b8df75b801405a6b53e4175 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells" : [ {
"metadata" : {
"collapsed" : true
},
"cell_type" : "markdown",
"source" : [ "# Benchmark Analysis\n", "This notebook demonstrates how you can analyze and plot benchmark results for a more detailed analysis.\n", "\n", "First you need to run the benchmark. Using\n", "```shell\n", "> ./gradlew :examples:jvmBenchmark\n", "```\n", "This Notebook will then analyze the latest results and plot them." ],
"id" : "acbb028a1f5dff2e"
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:39:57.046879Z",
"start_time" : "2025-09-24T15:39:51.575144Z"
}
},
"cell_type" : "code",
"source" : "%use serialization, dataframe, kandy",
"id" : "a62a1871ebe1d272",
"outputs" : [ ],
"execution_count" : 1
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:41:18.681245Z",
"start_time" : "2025-09-24T15:41:18.410544Z"
}
},
"cell_type" : "code",
"source" : [ "import java.nio.file.Files\n", "import java.nio.file.attribute.BasicFileAttributes\n", "import kotlin.io.path.exists\n", "import kotlin.io.path.forEachDirectoryEntry\n", "import kotlin.io.path.isDirectory\n", "import kotlin.io.path.listDirectoryEntries\n", "import kotlin.io.path.readText\n", "\n", "val runsDir = notebook.workingDir.resolve(\"kotlin-multiplatform/build/reports/benchmarks/main\")\n", "val lastRunDir = runsDir.listDirectoryEntries()\n", " .filter { it.isDirectory() }\n", " .sortedByDescending { dir -> Files.readAttributes(dir, BasicFileAttributes::class.java).creationTime() }\n", " .first()\n", "val outputFile = lastRunDir.resolve(\"jvm.json\")\n", "val benchmarkData = outputFile.readText().deserializeJson()\n", "// Comment this out to see the file content inside the notebook.\n", "// benchmarkData" ],
"id" : "436aaa659bc0dbb3",
"outputs" : [ ],
"execution_count" : 9
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:39:58.600572Z",
"start_time" : "2025-09-24T15:39:58.217861Z"
}
},
"cell_type" : "code",
"source" : [ "// Move results into dataframe\n", "data class Benchmark(val name: String, val score: Double, val error: Double, val unit: String)\n", "\n", "val benchmarksDataFrame = benchmarkData.map {\n", " val paramInfo = it.params?.let {\n", " \" [data=${it.`data`}, text=\\\"${it.text}\\\", value=${it.`value`}]\"\n", " } ?: \"\"\n", " val name = it.benchmark + paramInfo\n", " Benchmark(name, it.primaryMetric.score, it.primaryMetric.scoreError, it.primaryMetric.scoreUnit)\n", "}.toDataFrame()\n", "benchmarksDataFrame" ],
"id" : "2d14ca4abaf8347b",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe onload=\"o_resize_iframe_out_1()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_1\" frameBorder=\"0\" srcdoc=\" &lt;html&gt;\n", " &lt;head&gt;\n", " &lt;style type=&quot;text&sol;css&quot;&gt;\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover &gt; td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "&sol;* formatting *&sol;\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n", " height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " &lt;&sol;style&gt;\n", " &lt;&sol;head&gt;\n", " &lt;body&gt;\n", " &lt;table class=&quot;dataframe&quot; id=&quot;df_-536870912&quot;&gt;&lt;&sol;table&gt;\n", "\n", "&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 20, columnsCount = 4&lt;&sol;p&gt;\n", "\n", " &lt;&sol;body&gt;\n", " &lt;script&gt;\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i &lt; cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col &lt; df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i &lt; result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j &lt; row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j &lt; row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos &gt; 0) {\n", " let j = 0\n", " for (let i = 0; j &lt; pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i &lt; col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i &lt; result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size &gt; 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById(&quot;df_&quot; + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n", " let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n", " svg.classList.add(&quot;expanderSvg&quot;)\n", " let path = document.createElementNS(svgNs, &quot;path&quot;)\n", " if (isExpanded) {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n", " } else {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n", " }\n", " path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = &quot;&quot;\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " &sol;&sol; header\n", " let header = document.createElement(&quot;thead&quot;)\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j &lt; renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement(&quot;tr&quot;);\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i &lt; rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement(&quot;th&quot;);\n", " th.setAttribute(&quot;colspan&quot;, cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (isLastRow)\n", " classes += &quot; bottomBorder&quot;\n", " if (classes.length &gt; 0)\n", " th.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " &sol;&sol; body\n", " let body = document.createElement(&quot;tbody&quot;)\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row &lt; df.nrow; row++) {\n", " let tr = document.createElement(&quot;tr&quot;);\n", " body.appendChild(tr)\n", " for (let i = 0; i &lt; columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement(&quot;td&quot;);\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (classes.length &gt; 0)\n", " td.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement(&quot;p&quot;))\n", " const childTable = document.createElement(&quot;table&quot;)\n", " childTable.className = &quot;dataframe&quot;\n", " childTable.id = &quot;df_&quot; + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement(&quot;p&quot;)\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute(&quot;style&quot;, value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i &lt; children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement(&quot;script&quot;);\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i &lt; attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "&sol;*&lt;!--*&sol;\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;name: String&bsol;&quot;&gt;name&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;test.InheritedBenchmark.baseBenchmark&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.InheritedBenchmark.inheritedBenchmark&bsol;&quot;&gt;test.InheritedBenchmark.inheritedBenc&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.mathBenchmark [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.mathBenchmark [da&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.mathBenchmark [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.mathBenchmark [da&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.mathBenchmark [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.mathBenchmark [da&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.mathBenchmark [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.mathBenchmark [da&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.otherBenchmark [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.otherBenchmark [d&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.otherBenchmark [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.otherBenchmark [d&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.otherBenchmark [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.otherBenchmark [d&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.otherBenchmark [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.otherBenchmark [d&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.textContentCheck [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.textContentCheck &lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.textContentCheck [data=1, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.textContentCheck &lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.textContentCheck [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=1]&bsol;&quot;&gt;test.ParamBenchmark.textContentCheck &lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.ParamBenchmark.textContentCheck [data=2, text=&amp;#34;a &amp;#34;string&amp;#34; with quotes&amp;#34;, value=2]&bsol;&quot;&gt;test.ParamBenchmark.textContentCheck &lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.nested.CommonBenchmark.mathBenchmark&bsol;&quot;&gt;test.nested.CommonBenchmark.mathBench&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;test.CommonBenchmark.longBenchmark&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;test.CommonBenchmark.longBlackholeBenchmark&bsol;&quot;&gt;test.CommonBenchmark.longBlackholeBen&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;test.CommonBenchmark.mathBenchmark&quot;,&quot;test.JvmTestBenchmark.cosBenchmark&quot;,&quot;test.JvmTestBenchmark.sqrtBenchmark&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;score: Double&bsol;&quot;&gt;score&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1159050.348401&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;145098889.054236&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;209712.172221&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;217745.267345&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103881.763059&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103368.085738&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2680848.028551&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2536532.158499&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2650213.077662&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2676093.773669&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;154884.593052&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;154725.251181&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;154103.969887&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;155283.852441&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;149267.514644&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000846&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000023&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000007&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3.477089&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.536215&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;error: Double&bsol;&quot;&gt;error&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3748.652723&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3682026.745413&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6204.765083&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;567.128662&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;845.091655&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1124.203555&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;10367.620110&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;201297.952312&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;92024.686748&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6137.060320&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;418.498701&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;661.963724&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;911.775457&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;761.637638&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;398.839279&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000004&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000000&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.000000&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.012840&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;0.002181&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;unit: String&bsol;&quot;&gt;unit&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;ops&sol;s&quot;,&quot;ops&sol;s&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ms&sol;op&quot;,&quot;ms&sol;op&quot;,&quot;ms&sol;op&quot;,&quot;ns&sol;op&quot;,&quot;ns&sol;op&quot;] }, \n", "], id: -536870912, rootId: -536870912, totalRows: 20 } ) });\n", "&sol;*--&gt;*&sol;\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870912) });\n", "\n", "\n", " &lt;&sol;script&gt;\n", " &lt;&sol;html&gt;\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_1() {\n", " let elem = document.getElementById(\"iframe_out_1\");\n", " resize_iframe_out_1(elem);\n", " setInterval(resize_iframe_out_1, 5000, elem);\n", " }\n", " function resize_iframe_out_1(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870911\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">test.InheritedBenchmark.baseBenchmark</td><td style=\"vertical-align:top\">1159050.348401</td><td style=\"vertical-align:top\">3748.652723</td><td style=\"vertical-align:top\">ops/s</td></tr><tr><td style=\"vertical-align:top\">test.InheritedBenchmark.inheritedBenc<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">145098889.054236</td><td style=\"vertical-align:top\">3682026.745413</td><td style=\"vertical-align:top\">ops/s</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.mathBenchmark [da<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2680848.028551</td><td style=\"vertical-align:top\">10367.620110</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2536532.158499</td><td style=\"vertical-align:top\">201297.952312</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2650213.077662</td><td style=\"vertical-align:top\">92024.686748</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.otherBenchmark [d<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">2676093.773669</td><td style=\"vertical-align:top\">6137.060320</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154884.593052</td><td style=\"vertical-align:top\">418.498701</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154725.251181</td><td style=\"vertical-align:top\">661.963724</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">154103.969887</td><td style=\"vertical-align:top\">911.775457</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.ParamBenchmark.textContentCheck <span class=\"structural\">...</span></td><td style=\"vertical-align:top\">155283.852441</td><td style=\"vertical-align:top\">761.637638</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.nested.CommonBenchmark.mathBench<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">149267.514644</td><td style=\"vertical-align:top\">398.839279</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.longBenchmark</td><td style=\"vertical-align:top\">0.000846</td><td style=\"vertical-align:top\">0.000004</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.longBlackholeBen<span class=\"structural\">...</span></td><td style=\"vertical-align:top\">0.000023</td><td style=\"vertical-align:top\">0.000000</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.CommonBenchmark.mathBenchmark</td><td style=\"vertical-align:top\">0.000007</td><td style=\"vertical-align:top\">0.000000</td><td style=\"vertical-align:top\">ms/op</td></tr><tr><td style=\"vertical-align:top\">test.JvmTestBenchmark.cosBenchmark</td><td style=\"vertical-align:top\">3.477089</td><td style=\"vertical-align:top\">0.012840</td><td style=\"vertical-align:top\">ns/op</td></tr><tr><td style=\"vertical-align:top\">test.JvmTestBenchmark.sqrtBenchmark</td><td style=\"vertical-align:top\">0.536215</td><td style=\"vertical-align:top\">0.002181</td><td style=\"vertical-align:top\">ns/op</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870911\").style.display = \"none\";\n", " </script>\n", " </html>" ],
"application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"}],\"nrow\":20,\"ncol\":4},\"kotlin_dataframe\":[{\"name\":\"test.InheritedBenchmark.baseBenchmark\",\"score\":1159050.3484011823,\"error\":3748.6527227175225,\"unit\":\"ops/s\"},{\"name\":\"test.InheritedBenchmark.inheritedBenchmark\",\"score\":1.4509888905423555E8,\"error\":3682026.7454129574,\"unit\":\"ops/s\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.mathBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":2680848.0285513955,\"error\":10367.620110199798,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":2536532.1584992353,\"error\":201297.95231211095,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":2650213.077661748,\"error\":92024.68674833527,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.otherBenchmark [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":2676093.7736686165,\"error\":6137.060319636991,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":154884.59305200967,\"error\":418.4987006199166,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=1, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":154725.251180618,\"error\":661.9637235298198,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=1]\",\"score\":154103.9698873938,\"error\":911.7754567574352,\"unit\":\"ops/ms\"},{\"name\":\"test.ParamBenchmark.textContentCheck [data=2, text=\\\"a \\\"string\\\" with quotes\\\", value=2]\",\"score\":155283.85244050203,\"error\":761.6376382789958,\"unit\":\"ops/ms\"},{\"name\":\"test.nested.CommonBenchmark.mathBenchmark\",\"score\":149267.51464363115,\"error\":398.8392788696256,\"unit\":\"ops/ms\"},{\"name\":\"test.CommonBenchmark.longBenchmark\",\"score\":8.459911936509983E-4,\"error\":4.255006804061264E-6,\"unit\":\"ms/op\"},{\"name\":\"test.CommonBenchmark.longBlackholeBenchmark\",\"score\":2.283681115680474E-5,\"error\":2.495606184215389E-7,\"unit\":\"ms/op\"},{\"name\":\"test.CommonBenchmark.mathBenchmark\",\"score\":6.683096887700141E-6,\"error\":1.3424038843476543E-8,\"unit\":\"ms/op\"},{\"name\":\"test.JvmTestBenchmark.cosBenchmark\",\"score\":3.4770893548299897,\"error\":0.012840203721180716,\"unit\":\"ns/op\"},{\"name\":\"test.JvmTestBenchmark.sqrtBenchmark\",\"score\":0.5362148556154316,\"error\":0.002180970454172613,\"unit\":\"ns/op\"}]}"
},
"execution_count" : 3,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 3
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:39:58.995159Z",
"start_time" : "2025-09-24T15:39:58.663584Z"
}
},
"cell_type" : "code",
"source" : [ "// Analyze underlying data for first benchmark.\n", "// `iteration` must be String for Kandy to group data correctly\n", "data class Row(val fork: Int, val iteration: String, val score: Double)\n", "val benchmark = benchmarkData.first()\n", "val rawData = benchmarkData.first().primaryMetric.rawData\n", "val df = rawData.flatMapIndexed { f, iter ->\n", " iter.mapIndexed { i, s -> Row(fork = f + 1, iteration = (i + 1).toString(), score = s) }\n", "}.toDataFrame()\n", "df" ],
"id" : "d3da5d93cfdb1922",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe onload=\"o_resize_iframe_out_2()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_2\" frameBorder=\"0\" srcdoc=\" &lt;html&gt;\n", " &lt;head&gt;\n", " &lt;style type=&quot;text&sol;css&quot;&gt;\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover &gt; td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "&sol;* formatting *&sol;\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n", " height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " &lt;&sol;style&gt;\n", " &lt;&sol;head&gt;\n", " &lt;body&gt;\n", " &lt;table class=&quot;dataframe&quot; id=&quot;df_-536870910&quot;&gt;&lt;&sol;table&gt;\n", "\n", "&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 15, columnsCount = 3&lt;&sol;p&gt;\n", "\n", " &lt;&sol;body&gt;\n", " &lt;script&gt;\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i &lt; cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col &lt; df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i &lt; result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j &lt; row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j &lt; row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos &gt; 0) {\n", " let j = 0\n", " for (let i = 0; j &lt; pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i &lt; col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i &lt; result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size &gt; 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById(&quot;df_&quot; + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n", " let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n", " svg.classList.add(&quot;expanderSvg&quot;)\n", " let path = document.createElementNS(svgNs, &quot;path&quot;)\n", " if (isExpanded) {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n", " } else {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n", " }\n", " path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = &quot;&quot;\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " &sol;&sol; header\n", " let header = document.createElement(&quot;thead&quot;)\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j &lt; renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement(&quot;tr&quot;);\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i &lt; rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement(&quot;th&quot;);\n", " th.setAttribute(&quot;colspan&quot;, cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (isLastRow)\n", " classes += &quot; bottomBorder&quot;\n", " if (classes.length &gt; 0)\n", " th.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " &sol;&sol; body\n", " let body = document.createElement(&quot;tbody&quot;)\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row &lt; df.nrow; row++) {\n", " let tr = document.createElement(&quot;tr&quot;);\n", " body.appendChild(tr)\n", " for (let i = 0; i &lt; columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement(&quot;td&quot;);\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (classes.length &gt; 0)\n", " td.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement(&quot;p&quot;))\n", " const childTable = document.createElement(&quot;table&quot;)\n", " childTable.className = &quot;dataframe&quot;\n", " childTable.id = &quot;df_&quot; + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement(&quot;p&quot;)\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute(&quot;style&quot;, value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i &lt; children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement(&quot;script&quot;);\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i &lt; attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "&sol;*&lt;!--*&sol;\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;fork: Int&bsol;&quot;&gt;fork&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;2&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;3&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;iteration: String&bsol;&quot;&gt;iteration&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;score: Double&bsol;&quot;&gt;score&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1158908.103798&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1161431.155757&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1157657.915890&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1163379.539291&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1158893.168350&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1156089.801418&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1159765.657691&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1160904.857522&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1160873.988534&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1154220.230407&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1159114.787443&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1156306.669103&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1151452.073143&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1164727.257529&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1162030.020141&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "], id: -536870910, rootId: -536870910, totalRows: 15 } ) });\n", "&sol;*--&gt;*&sol;\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870910) });\n", "\n", "\n", " &lt;&sol;script&gt;\n", " &lt;&sol;html&gt;\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_2() {\n", " let elem = document.getElementById(\"iframe_out_2\");\n", " resize_iframe_out_2(elem);\n", " setInterval(resize_iframe_out_2, 5000, elem);\n", " }\n", " function resize_iframe_out_2(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870909\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">fork</th><th class=\"bottomBorder\" style=\"text-align:left\">iteration</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1158908.103798</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1161431.155757</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1157657.915890</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1163379.539291</td></tr><tr><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1158893.168350</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1156089.801418</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1159765.657691</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1160904.857522</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1160873.988534</td></tr><tr><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1154220.230407</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1</td><td style=\"vertical-align:top\">1159114.787443</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">2</td><td style=\"vertical-align:top\">1156306.669103</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">1151452.073143</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">4</td><td style=\"vertical-align:top\">1164727.257529</td></tr><tr><td style=\"vertical-align:top\">3</td><td style=\"vertical-align:top\">5</td><td style=\"vertical-align:top\">1162030.020141</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870909\").style.display = \"none\";\n", " </script>\n", " </html>" ],
"application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"fork\",\"iteration\",\"score\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Int\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"}],\"nrow\":15,\"ncol\":3},\"kotlin_dataframe\":[{\"fork\":1,\"iteration\":\"1\",\"score\":1158908.1037975468},{\"fork\":1,\"iteration\":\"2\",\"score\":1161431.155757067},{\"fork\":1,\"iteration\":\"3\",\"score\":1157657.9158900976},{\"fork\":1,\"iteration\":\"4\",\"score\":1163379.5392909562},{\"fork\":1,\"iteration\":\"5\",\"score\":1158893.1683501906},{\"fork\":2,\"iteration\":\"1\",\"score\":1156089.8014178998},{\"fork\":2,\"iteration\":\"2\",\"score\":1159765.6576914047},{\"fork\":2,\"iteration\":\"3\",\"score\":1160904.8575220038},{\"fork\":2,\"iteration\":\"4\",\"score\":1160873.98853425},{\"fork\":2,\"iteration\":\"5\",\"score\":1154220.2304071567},{\"fork\":3,\"iteration\":\"1\",\"score\":1159114.7874430087},{\"fork\":3,\"iteration\":\"2\",\"score\":1156306.6691030415},{\"fork\":3,\"iteration\":\"3\",\"score\":1151452.073143193},{\"fork\":3,\"iteration\":\"4\",\"score\":1164727.2575287838},{\"fork\":3,\"iteration\":\"5\",\"score\":1162030.0201411375}]}"
},
"execution_count" : 4,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 4
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:39:59.614813Z",
"start_time" : "2025-09-24T15:39:59.118397Z"
}
},
"cell_type" : "code",
"source" : [ "// Create a grouped bar plot to that focuses on the differences of the measurements as plotting\n", "// the entire range just make them disapear.\n", "val col = df[\"score\"].cast<Double>().values()\n", "val min = col.minOrNull()!!\n", "val max = col.maxOrNull()!!\n", "val adjustedRange = (min * 0.999)..max\n", "\n", "df.groupBy(\"fork\").plot {\n", " bars {\n", " x(\"fork\")\n", " y(\"score\")\n", " fillColor(\"iteration\") {\n", " scale = categorical()\n", " }\n", " position = Position.dodge()\n", " width = 5.0\n", " }\n", " x.axis.name = \"Fork\"\n", " y.axis {\n", " name = \"Score (ops/s)\"\n", " limits = adjustedRange\n", " }\n", "}" ],
"id" : "f16bd6a95ae2eb79",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe src='about:blank' style='border:none !important;' width='600' height='400' srcdoc=\"&lt;html lang=&quot;en&quot;>\n", " &lt;head>\n", " &lt;meta charset=&quot;UTF-8&quot;>\n", " &lt;style> html, body { margin: 0; overflow: hidden; } &lt;/style>\n", " &lt;script type=&quot;text/javascript&quot; data-lets-plot-script=&quot;library&quot; src=&quot;https://cdn.jsdelivr.net/gh/JetBrains/[email protected]/js-package/distr/lets-plot.min.js&quot;>&lt;/script>\n", " &lt;/head>\n", " &lt;body>\n", " &lt;div id=&quot;Zk1aRe&quot;>&lt;/div>\n", " &lt;script type=&quot;text/javascript&quot; data-lets-plot-script=&quot;plot&quot;>\n", " \n", " (function() {\n", " // ----------\n", " \n", " var plotSpec={\n", "&quot;mapping&quot;:{\n", "},\n", "&quot;coord&quot;:{\n", "&quot;name&quot;:&quot;cartesian&quot;,\n", "&quot;flip&quot;:false,\n", "&quot;ylim&quot;:[1150300.62107005,1164727.2575287838]\n", "},\n", "&quot;data&quot;:{\n", "&quot;score&quot;:[1158908.1037975468,1161431.155757067,1157657.9158900976,1163379.5392909562,1158893.1683501906,1156089.8014178998,1159765.6576914047,1160904.8575220038,1160873.98853425,1154220.2304071567,1159114.7874430087,1156306.6691030415,1151452.073143193,1164727.2575287838,1162030.0201411375],\n", "&quot;fork&quot;:[1.0,1.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,3.0,3.0,3.0,3.0,3.0],\n", "&quot;&amp;merged_groups&quot;:[&quot;1&quot;,&quot;1&quot;,&quot;1&quot;,&quot;1&quot;,&quot;1&quot;,&quot;2&quot;,&quot;2&quot;,&quot;2&quot;,&quot;2&quot;,&quot;2&quot;,&quot;3&quot;,&quot;3&quot;,&quot;3&quot;,&quot;3&quot;,&quot;3&quot;],\n", "&quot;iteration&quot;:[&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;,&quot;1&quot;,&quot;2&quot;,&quot;3&quot;,&quot;4&quot;,&quot;5&quot;]\n", "},\n", "&quot;kind&quot;:&quot;plot&quot;,\n", "&quot;scales&quot;:[{\n", "&quot;aesthetic&quot;:&quot;x&quot;,\n", "&quot;discrete&quot;:true\n", "},{\n", "&quot;aesthetic&quot;:&quot;y&quot;,\n", "&quot;limits&quot;:[null,null]\n", "},{\n", "&quot;aesthetic&quot;:&quot;fill&quot;,\n", "&quot;discrete&quot;:true\n", "},{\n", "&quot;aesthetic&quot;:&quot;x&quot;,\n", "&quot;name&quot;:&quot;Fork&quot;,\n", "&quot;limits&quot;:[null,null]\n", "},{\n", "&quot;aesthetic&quot;:&quot;y&quot;,\n", "&quot;name&quot;:&quot;Score (ops/s)&quot;,\n", "&quot;limits&quot;:[null,null]\n", "}],\n", "&quot;layers&quot;:[{\n", "&quot;mapping&quot;:{\n", "&quot;x&quot;:&quot;fork&quot;,\n", "&quot;y&quot;:&quot;score&quot;,\n", "&quot;fill&quot;:&quot;iteration&quot;,\n", "&quot;group&quot;:&quot;&amp;merged_groups&quot;\n", "},\n", "&quot;stat&quot;:&quot;identity&quot;,\n", "&quot;sampling&quot;:&quot;none&quot;,\n", "&quot;width&quot;:5.0,\n", "&quot;inherit_aes&quot;:false,\n", "&quot;position&quot;:&quot;dodge&quot;,\n", "&quot;geom&quot;:&quot;bar&quot;,\n", "&quot;data&quot;:{\n", "}\n", "}],\n", "&quot;data_meta&quot;:{\n", "&quot;series_annotations&quot;:[{\n", "&quot;type&quot;:&quot;int&quot;,\n", "&quot;column&quot;:&quot;fork&quot;\n", "},{\n", "&quot;type&quot;:&quot;float&quot;,\n", "&quot;column&quot;:&quot;score&quot;\n", "},{\n", "&quot;type&quot;:&quot;str&quot;,\n", "&quot;column&quot;:&quot;iteration&quot;\n", "},{\n", "&quot;type&quot;:&quot;str&quot;,\n", "&quot;column&quot;:&quot;&amp;merged_groups&quot;\n", "}]\n", "},\n", "&quot;spec_id&quot;:&quot;2&quot;\n", "};\n", " var containerDiv = document.getElementById(&quot;Zk1aRe&quot;);\n", " \n", " var toolbar = null;\n", " var plotContainer = containerDiv; \n", " \n", " var options = {\n", " sizing: {\n", " width_mode: &quot;fixed&quot;,\n", " height_mode: &quot;fixed&quot;,\n", " width: 600.0,\n", " height: 400.0\n", " }\n", " };\n", " var fig = LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer, options);\n", " if (toolbar) {\n", " toolbar.bind(fig);\n", " }\n", " \n", " // ----------\n", " })();\n", " \n", " &lt;/script>\n", " &lt;/body>\n", "&lt;/html>\"></iframe> <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" display=\"block\" class=\"plt-container\" id=c2e4fa46-e862-4d87-ac2c-9a5d709a893f width=\"100%\" height=\"100%\" style=\"max-width: 600.0px; max-height: 400.0px;\" viewBox=\"0 0 600.0 400.0\" preserveAspectRatio=\"xMinYMin meet\">\n", " <style type=\"text/css\">\n", " .plt-container {\n", " font-family: Lucida Grande, sans-serif;\n", " user-select: none;\n", " -webkit-user-select: none;\n", " -moz-user-select: none;\n", " -ms-user-select: none;\n", "}\n", "text {\n", " text-rendering: optimizeLegibility;\n", "}\n", "#pVb1LGG .plot-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 16.0px;\n", "\n", "}\n", "#pVb1LGG .plot-subtitle {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .plot-caption {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .hyperlink-element {\n", "fill: #118ed8;\n", "font-weight: normal;\n", " font-style: normal;\n", "}\n", "#pVb1LGG .legend-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .legend-item {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .axis-title-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .axis-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .axis-tooltip-text-x {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .axis-title-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pVb1LGG .axis-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .axis-tooltip-text-y {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .facet-strip-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pVb1LGG .facet-strip-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-text {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-title {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#djbRjpF .tooltip-label {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "\n", " </style>\n", " <g id=\"pVb1LGG\">\n", " <path fill-rule=\"evenodd\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\">\n", " </path>\n", " <g transform=\"translate(29.5 6.5 ) \">\n", " <g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <line x1=\"149.9175296096386\" y1=\"0.0\" x2=\"149.9175296096386\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"205.44254057617138\" y1=\"0.0\" x2=\"205.44254057617138\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"260.9675515427042\" y1=\"0.0\" x2=\"260.9675515427042\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <line x1=\"0.0\" y1=\"300.83206364348734\" x2=\"410.88508115234276\" y2=\"300.83206364348734\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"253.55839718971401\" x2=\"410.88508115234276\" y2=\"253.55839718971401\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"206.28473073594432\" x2=\"410.88508115234276\" y2=\"206.28473073594432\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"159.011064282171\" x2=\"410.88508115234276\" y2=\"159.011064282171\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"111.7373978284013\" x2=\"410.88508115234276\" y2=\"111.7373978284013\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"64.46373137462797\" x2=\"410.88508115234276\" y2=\"64.46373137462797\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"17.190064920858276\" x2=\"410.88508115234276\" y2=\"17.190064920858276\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " <g clip-path=\"url(#cUnTt5e)\" clip-bounds-jfx=\"[rect (72.01121880696743, 0.0), (410.88508115234276, 341.0)]\">\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g>\n", " <g>\n", " <rect x=\"381.2717419701919\" y=\"63.75415030511431\" height=\"27466.709790710687\" width=\"18.50833698884435\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"362.76340498134766\" y=\"0.0\" height=\"27530.4639410158\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"344.2550679925034\" y=\"313.78331937836265\" height=\"27216.68062163744\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"325.7467310036592\" y=\"199.03604429151164\" height=\"27331.42789672429\" width=\"18.508336988844235\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"307.23839401481484\" y=\"132.66101940834778\" height=\"27397.802921607454\" width=\"18.50833698884435\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"233.2050460594378\" y=\"248.35284778426285\" height=\"27282.11109323154\" width=\"18.50833698884429\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"214.69670907059353\" y=\"91.07907660212004\" height=\"27439.38486441368\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"196.18837208174926\" y=\"90.34943148670209\" height=\"27440.1145095291\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"177.680035092905\" y=\"117.27650789467225\" height=\"27413.18743312113\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"159.17169810406074\" y=\"204.1621095975097\" height=\"27326.301831418292\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"85.13835014868366\" y=\"137.89939294518263\" height=\"27392.56454807062\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"66.6300131598394\" y=\"31.855791224359564\" height=\"27498.608149791442\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"48.121676170995116\" y=\"167.09684933750395\" height=\"27363.367091678298\" width=\"18.508336988844277\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"29.613339182150852\" y=\"77.90940787690852\" height=\"27452.554533138893\" width=\"18.508336988844263\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"11.105002193306575\" y=\"137.54636626685533\" height=\"27392.917574748946\" width=\"18.508336988844277\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <defs>\n", " <clipPath id=\"cUnTt5e\">\n", " <rect x=\"72.01121880696743\" y=\"0.0\" width=\"410.88508115234276\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " </g>\n", " <g>\n", " <g transform=\"translate(72.01121880696743 341.0 ) \">\n", " <g transform=\"translate(149.9175296096386 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>1.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(205.44254057617138 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>2.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(260.9675515427042 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>3.0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <line x1=\"0.0\" y1=\"0.0\" x2=\"410.88508115234276\" y2=\"0.0\" stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\">\n", " </line>\n", " </g>\n", " <g transform=\"translate(72.01121880696743 0.0 ) \">\n", " <g transform=\"translate(0.0 300.83206364348734 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,152,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 253.55839718971401 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,154,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 206.28473073594432 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,156,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 159.011064282171 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,158,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 111.7373978284013 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,160,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 64.46373137462797 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,162,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 17.190064920858276 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>1,164,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(16.0 177.0 ) rotate(-90.0 ) \">\n", " <text class=\"axis-title-y\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>Score (ops/s)</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(306.95375938313884 393.0 ) \">\n", " <text class=\"axis-title-x\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>Fork</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(523.8962999593102 103.25 ) \">\n", " <rect x=\"0.0\" y=\"0.0\" height=\"147.5\" width=\"76.1037000406898\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\">\n", " </rect>\n", " <g transform=\"translate(5.0 5.0 ) \">\n", " <g transform=\"translate(0.0 12.0 ) \">\n", " <text class=\"legend-title\" y=\"0.0\">\n", " <tspan>iteration</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(0.0 22.5 ) \">\n", " <g transform=\"\">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(228,26,28)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>1</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 23.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(55,126,184)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>2</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 46.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(77,175,74)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>3</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 69.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(152,78,163)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>4</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 92.0 ) \">\n", " <g>\n", " <g transform=\"translate(1.0 1.0 ) \">\n", " <g>\n", " <rect x=\"0.0\" y=\"0.0\" height=\"21.0\" width=\"21.0\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(255,127,0)\" fill-opacity=\"1.0\" stroke-width=\"1.5\">\n", " </rect>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(26.9903027277341 16.05 ) \">\n", " <text class=\"legend-item\" y=\"0.0\">\n", " <tspan>5</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <path fill=\"rgb(0,0,0)\" fill-opacity=\"0.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\" pointer-events=\"none\">\n", " </path>\n", " </g>\n", " <g id=\"djbRjpF\">\n", " </g>\n", "</svg>\n", " <script>document.getElementById(\"c2e4fa46-e862-4d87-ac2c-9a5d709a893f\").style.display = \"none\";</script>" ],
"application/plot+json" : {
"output_type" : "lets_plot_spec",
"output" : {
"mapping" : { },
"coord" : {
"name" : "cartesian",
"flip" : false,
"ylim" : [ 1150300.62107005, 1164727.2575287838 ]
},
"data" : {
"score" : [ 1158908.1037975468, 1161431.155757067, 1157657.9158900976, 1163379.5392909562, 1158893.1683501906, 1156089.8014178998, 1159765.6576914047, 1160904.8575220038, 1160873.98853425, 1154220.2304071567, 1159114.7874430087, 1156306.6691030415, 1151452.073143193, 1164727.2575287838, 1162030.0201411375 ],
"fork" : [ 1.0, 1.0, 1.0, 1.0, 1.0, 2.0, 2.0, 2.0, 2.0, 2.0, 3.0, 3.0, 3.0, 3.0, 3.0 ],
"&merged_groups" : [ "1", "1", "1", "1", "1", "2", "2", "2", "2", "2", "3", "3", "3", "3", "3" ],
"iteration" : [ "1", "2", "3", "4", "5", "1", "2", "3", "4", "5", "1", "2", "3", "4", "5" ]
},
"kind" : "plot",
"scales" : [ {
"aesthetic" : "x",
"discrete" : true
}, {
"aesthetic" : "y",
"limits" : [ null, null ]
}, {
"aesthetic" : "fill",
"discrete" : true
}, {
"aesthetic" : "x",
"name" : "Fork",
"limits" : [ null, null ]
}, {
"aesthetic" : "y",
"name" : "Score (ops/s)",
"limits" : [ null, null ]
} ],
"layers" : [ {
"mapping" : {
"x" : "fork",
"y" : "score",
"fill" : "iteration",
"group" : "&merged_groups"
},
"stat" : "identity",
"sampling" : "none",
"width" : 5.0,
"inherit_aes" : false,
"position" : "dodge",
"geom" : "bar"
} ],
"data_meta" : {
"series_annotations" : [ {
"type" : "int",
"column" : "fork"
}, {
"type" : "float",
"column" : "score"
}, {
"type" : "str",
"column" : "iteration"
}, {
"type" : "str",
"column" : "&merged_groups"
} ]
}
},
"apply_color_scheme" : true,
"swing_enabled" : true
}
},
"execution_count" : 5,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 5
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:39:59.827276Z",
"start_time" : "2025-09-24T15:39:59.616862Z"
}
},
"cell_type" : "code",
"source" : [ "// Plot the differences in the benchmark using @Params\n", "// Here we just focus one the actual score and error values\n", "data class MathBenchmark(\n", " val name: String,\n", " val score: Double,\n", " val error: Double,\n", " val unit: String\n", ")\n", "\n", "val mathBenchmark = benchmarkData.filter {\n", " it.benchmark == \"test.ParamBenchmark.mathBenchmark\"\n", "}.map {\n", " MathBenchmark(\n", " name = \"[${it.params?.data.toString()},${it.params?.value.toString()}]\",\n", " score = it.primaryMetric.score,\n", " error = it.primaryMetric.scoreError,\n", " unit = it.primaryMetric.scoreUnit,\n", " )\n", "}.toDataFrame()\n", "mathBenchmark" ],
"id" : "2a2e8750d4b73720",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe onload=\"o_resize_iframe_out_5()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_5\" frameBorder=\"0\" srcdoc=\" &lt;html&gt;\n", " &lt;head&gt;\n", " &lt;style type=&quot;text&sol;css&quot;&gt;\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover &gt; td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "&sol;* formatting *&sol;\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n", " height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " &lt;&sol;style&gt;\n", " &lt;&sol;head&gt;\n", " &lt;body&gt;\n", " &lt;table class=&quot;dataframe&quot; id=&quot;df_-536870904&quot;&gt;&lt;&sol;table&gt;\n", "\n", "&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 4, columnsCount = 4&lt;&sol;p&gt;\n", "\n", " &lt;&sol;body&gt;\n", " &lt;script&gt;\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i &lt; cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col &lt; df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i &lt; result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j &lt; row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j &lt; row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos &gt; 0) {\n", " let j = 0\n", " for (let i = 0; j &lt; pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i &lt; col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i &lt; result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size &gt; 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById(&quot;df_&quot; + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n", " let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n", " svg.classList.add(&quot;expanderSvg&quot;)\n", " let path = document.createElementNS(svgNs, &quot;path&quot;)\n", " if (isExpanded) {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n", " } else {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n", " }\n", " path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = &quot;&quot;\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " &sol;&sol; header\n", " let header = document.createElement(&quot;thead&quot;)\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j &lt; renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement(&quot;tr&quot;);\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i &lt; rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement(&quot;th&quot;);\n", " th.setAttribute(&quot;colspan&quot;, cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (isLastRow)\n", " classes += &quot; bottomBorder&quot;\n", " if (classes.length &gt; 0)\n", " th.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " &sol;&sol; body\n", " let body = document.createElement(&quot;tbody&quot;)\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row &lt; df.nrow; row++) {\n", " let tr = document.createElement(&quot;tr&quot;);\n", " body.appendChild(tr)\n", " for (let i = 0; i &lt; columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement(&quot;td&quot;);\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (classes.length &gt; 0)\n", " td.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement(&quot;p&quot;))\n", " const childTable = document.createElement(&quot;table&quot;)\n", " childTable.className = &quot;dataframe&quot;\n", " childTable.id = &quot;df_&quot; + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement(&quot;p&quot;)\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute(&quot;style&quot;, value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i &lt; children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement(&quot;script&quot;);\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i &lt; attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "&sol;*&lt;!--*&sol;\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;name: String&bsol;&quot;&gt;name&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 1,&bsol;n 1&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 1,&amp;#92;n 1&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 1,&amp;#92;n 1&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 1,&bsol;n 2&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 1,&amp;#92;n 2&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 1,&amp;#92;n 2&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 2,&bsol;n 1&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 2,&amp;#92;n 1&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 2,&amp;#92;n 1&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 2,&bsol;n 2&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 2,&amp;#92;n 2&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 2,&amp;#92;n 2&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;score: Double&bsol;&quot;&gt;score&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;209712.172221&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;217745.267345&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103881.763059&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103368.085738&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;error: Double&bsol;&quot;&gt;error&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6204.765083&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;567.128662&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;845.091655&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1124.203555&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;unit: String&bsol;&quot;&gt;unit&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;] }, \n", "], id: -536870904, rootId: -536870904, totalRows: 4 } ) });\n", "&sol;*--&gt;*&sol;\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870904) });\n", "\n", "\n", " &lt;&sol;script&gt;\n", " &lt;&sol;html&gt;\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_5() {\n", " let elem = document.getElementById(\"iframe_out_5\");\n", " resize_iframe_out_5(elem);\n", " setInterval(resize_iframe_out_5, 5000, elem);\n", " }\n", " function resize_iframe_out_5(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870903\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">[1,1]</td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[1,2]</td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[2,1]</td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td></tr><tr><td style=\"vertical-align:top\">[2,2]</td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870903\").style.display = \"none\";\n", " </script>\n", " </html>" ],
"application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"}],\"nrow\":4,\"ncol\":4},\"kotlin_dataframe\":[{\"name\":\"[1,1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\"},{\"name\":\"[1,2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\"},{\"name\":\"[2,1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\"},{\"name\":\"[2,2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\"}]}"
},
"execution_count" : 6,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 6
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:40:00.284031Z",
"start_time" : "2025-09-24T15:39:59.889318Z"
}
},
"cell_type" : "code",
"source" : [ "// Add calculated columns so we can easier plot them in Kandy\n", "val mathBenchmarkWithErrorRange = mathBenchmark\n", " .add(\"errorMax\") { it.score + it.error }\n", " .add(\"errorMin\") { it.score - it.error }\n", "mathBenchmarkWithErrorRange" ],
"id" : "e3d45b12bec3f96a",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe onload=\"o_resize_iframe_out_7()\" style=\"width:100%;\" class=\"result_container\" id=\"iframe_out_7\" frameBorder=\"0\" srcdoc=\" &lt;html&gt;\n", " &lt;head&gt;\n", " &lt;style type=&quot;text&sol;css&quot;&gt;\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: &quot;Helvetica Neue&quot;, Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody &gt; tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover &gt; td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "&sol;* formatting *&sol;\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", ":root {\n", " --scroll-bg: #f5f5f5;\n", " --scroll-fg: #b3b3b3;\n", "}\n", ":root[theme=&quot;dark&quot;], :root [data-jp-theme-light=&quot;false&quot;]{\n", " --scroll-bg: #3c3c3c;\n", " --scroll-fg: #97e1fb;\n", "}\n", "body {\n", " scrollbar-color: var(--scroll-fg) var(--scroll-bg);\n", "}\n", "body::-webkit-scrollbar {\n", " width: 10px; &sol;* Mostly for vertical scrollbars *&sol;\n", " height: 10px; &sol;* Mostly for horizontal scrollbars *&sol;\n", "}\n", "body::-webkit-scrollbar-thumb {\n", " background-color: var(--scroll-fg);\n", "}\n", "body::-webkit-scrollbar-track {\n", " background-color: var(--scroll-bg);\n", "}\n", " &lt;&sol;style&gt;\n", " &lt;&sol;head&gt;\n", " &lt;body&gt;\n", " &lt;table class=&quot;dataframe&quot; id=&quot;df_-536870900&quot;&gt;&lt;&sol;table&gt;\n", "\n", "&lt;p class=&quot;dataframe_description&quot;&gt;DataFrame: rowsCount = 4, columnsCount = 6&lt;&sol;p&gt;\n", "\n", " &lt;&sol;body&gt;\n", " &lt;script&gt;\n", " (function () {\n", " window.DataFrame = window.DataFrame || new (function () {\n", " this.addTable = function (df) {\n", " let cols = df.cols;\n", " for (let i = 0; i &lt; cols.length; i++) {\n", " for (let c of cols[i].children) {\n", " cols[c].parent = i;\n", " }\n", " }\n", " df.nrow = 0\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " if (df.cols[i].values.length &gt; df.nrow) df.nrow = df.cols[i].values.length\n", " }\n", " if (df.id === df.rootId) {\n", " df.expandedFrames = new Set()\n", " df.childFrames = {}\n", " const table = this.getTableElement(df.id)\n", " table.df = df\n", " for (let i = 0; i &lt; df.cols.length; i++) {\n", " let col = df.cols[i]\n", " if (col.parent === undefined &amp;&amp; col.children.length &gt; 0) col.expanded = true\n", " }\n", " } else {\n", " const rootDf = this.getTableData(df.rootId)\n", " rootDf.childFrames[df.id] = df\n", " }\n", " }\n", "\n", " this.computeRenderData = function (df) {\n", " let result = []\n", " let pos = 0\n", " for (let col = 0; col &lt; df.cols.length; col++) {\n", " if (df.cols[col].parent === undefined)\n", " pos += this.computeRenderDataRec(df.cols, col, pos, 0, result, false, false)\n", " }\n", " for (let i = 0; i &lt; result.length; i++) {\n", " let row = result[i]\n", " for (let j = 0; j &lt; row.length; j++) {\n", " let cell = row[j]\n", " if (j === 0)\n", " cell.leftBd = false\n", " if (j &lt; row.length - 1) {\n", " let nextData = row[j + 1]\n", " if (nextData.leftBd) cell.rightBd = true\n", " else if (cell.rightBd) nextData.leftBd = true\n", " } else cell.rightBd = false\n", " }\n", " }\n", " return result\n", " }\n", "\n", " this.computeRenderDataRec = function (cols, colId, pos, depth, result, leftBorder, rightBorder) {\n", " if (result.length === depth) {\n", " const array = [];\n", " if (pos &gt; 0) {\n", " let j = 0\n", " for (let i = 0; j &lt; pos; i++) {\n", " let c = result[depth - 1][i]\n", " j += c.span\n", " let copy = Object.assign({empty: true}, c)\n", " array.push(copy)\n", " }\n", " }\n", " result.push(array)\n", " }\n", " const col = cols[colId];\n", " let size = 0;\n", " if (col.expanded) {\n", " let childPos = pos\n", " for (let i = 0; i &lt; col.children.length; i++) {\n", " let child = col.children[i]\n", " let childLeft = i === 0 &amp;&amp; (col.children.length &gt; 1 || leftBorder)\n", " let childRight = i === col.children.length - 1 &amp;&amp; (col.children.length &gt; 1 || rightBorder)\n", " let childSize = this.computeRenderDataRec(cols, child, childPos, depth + 1, result, childLeft, childRight)\n", " childPos += childSize\n", " size += childSize\n", " }\n", " } else {\n", " for (let i = depth + 1; i &lt; result.length; i++)\n", " result[i].push({id: colId, span: 1, leftBd: leftBorder, rightBd: rightBorder, empty: true})\n", " size = 1\n", " }\n", " let left = leftBorder\n", " let right = rightBorder\n", " if (size &gt; 1) {\n", " left = true\n", " right = true\n", " }\n", " result[depth].push({id: colId, span: size, leftBd: left, rightBd: right})\n", " return size\n", " }\n", "\n", " this.getTableElement = function (id) {\n", " return document.getElementById(&quot;df_&quot; + id)\n", " }\n", "\n", " this.getTableData = function (id) {\n", " return this.getTableElement(id).df\n", " }\n", "\n", " this.createExpander = function (isExpanded) {\n", " const svgNs = &quot;http:&sol;&sol;www.w3.org&sol;2000&sol;svg&quot;\n", " let svg = document.createElementNS(svgNs, &quot;svg&quot;)\n", " svg.classList.add(&quot;expanderSvg&quot;)\n", " let path = document.createElementNS(svgNs, &quot;path&quot;)\n", " if (isExpanded) {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;0 -2 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 4 4 4 -4 -1 -1 -3 3Z&quot;)\n", " } else {\n", " svg.setAttribute(&quot;viewBox&quot;, &quot;-2 0 8 8&quot;)\n", " path.setAttribute(&quot;d&quot;, &quot;M1 0 l-1 1 3 3 -3 3 1 1 4 -4Z&quot;)\n", " }\n", " path.setAttribute(&quot;fill&quot;, &quot;currentColor&quot;)\n", " svg.appendChild(path)\n", " return svg\n", " }\n", "\n", " this.renderTable = function (id) {\n", "\n", " let table = this.getTableElement(id)\n", "\n", " if (table === null) return\n", "\n", " table.innerHTML = &quot;&quot;\n", "\n", " let df = table.df\n", " let rootDf = df.rootId === df.id ? df : this.getTableData(df.rootId)\n", "\n", " &sol;&sol; header\n", " let header = document.createElement(&quot;thead&quot;)\n", " table.appendChild(header)\n", "\n", " let renderData = this.computeRenderData(df)\n", " for (let j = 0; j &lt; renderData.length; j++) {\n", " let rowData = renderData[j]\n", " let tr = document.createElement(&quot;tr&quot;);\n", " let isLastRow = j === renderData.length - 1\n", " header.appendChild(tr);\n", " for (let i = 0; i &lt; rowData.length; i++) {\n", " let cell = rowData[i]\n", " let th = document.createElement(&quot;th&quot;);\n", " th.setAttribute(&quot;colspan&quot;, cell.span)\n", " let colId = cell.id\n", " let col = df.cols[colId];\n", " if (!cell.empty) {\n", " if (col.children.length === 0) {\n", " th.innerHTML = col.name\n", " } else {\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " col.expanded = !col.expanded\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(col.expanded))\n", " link.innerHTML += col.name\n", " th.appendChild(link)\n", " }\n", " }\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (isLastRow)\n", " classes += &quot; bottomBorder&quot;\n", " if (classes.length &gt; 0)\n", " th.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(th)\n", " }\n", " }\n", "\n", " &sol;&sol; body\n", " let body = document.createElement(&quot;tbody&quot;)\n", " table.appendChild(body)\n", "\n", " let columns = renderData.pop()\n", " for (let row = 0; row &lt; df.nrow; row++) {\n", " let tr = document.createElement(&quot;tr&quot;);\n", " body.appendChild(tr)\n", " for (let i = 0; i &lt; columns.length; i++) {\n", " let cell = columns[i]\n", " let td = document.createElement(&quot;td&quot;);\n", " let colId = cell.id\n", " let col = df.cols[colId]\n", " let classes = (cell.leftBd ? &quot; leftBorder&quot; : &quot;&quot;) + (cell.rightBd ? &quot; rightBorder&quot; : &quot;&quot;)\n", " if (col.rightAlign)\n", " classes += &quot; rightAlign&quot;\n", " if (classes.length &gt; 0)\n", " td.setAttribute(&quot;class&quot;, classes)\n", " tr.appendChild(td)\n", " let value = col.values[row]\n", " if (value.frameId !== undefined) {\n", " let frameId = value.frameId\n", " let expanded = rootDf.expandedFrames.has(frameId)\n", " let link = document.createElement(&quot;a&quot;)\n", " link.className = &quot;expander&quot;\n", " let that = this\n", " link.onclick = function () {\n", " if (rootDf.expandedFrames.has(frameId))\n", " rootDf.expandedFrames.delete(frameId)\n", " else rootDf.expandedFrames.add(frameId)\n", " that.renderTable(id)\n", " }\n", " link.appendChild(this.createExpander(expanded))\n", " link.innerHTML += value.value\n", " if (expanded) {\n", " td.appendChild(link)\n", " td.appendChild(document.createElement(&quot;p&quot;))\n", " const childTable = document.createElement(&quot;table&quot;)\n", " childTable.className = &quot;dataframe&quot;\n", " childTable.id = &quot;df_&quot; + frameId\n", " let childDf = rootDf.childFrames[frameId]\n", " childTable.df = childDf\n", " td.appendChild(childTable)\n", " this.renderTable(frameId)\n", " if (childDf.nrow !== childDf.totalRows) {\n", " const footer = document.createElement(&quot;p&quot;)\n", " footer.innerText = `... showing only top ${childDf.nrow} of ${childDf.totalRows} rows`\n", " td.appendChild(footer)\n", " }\n", " } else {\n", " td.appendChild(link)\n", " }\n", " } else if (value.style !== undefined) {\n", " td.innerHTML = value.value\n", " td.setAttribute(&quot;style&quot;, value.style)\n", " } else td.innerHTML = value\n", " this.nodeScriptReplace(td)\n", " }\n", " }\n", " }\n", "\n", " this.nodeScriptReplace = function (node) {\n", " if (this.nodeScriptIs(node) === true) {\n", " node.parentNode.replaceChild(this.nodeScriptClone(node), node);\n", " } else {\n", " let i = -1, children = node.childNodes;\n", " while (++i &lt; children.length) {\n", " this.nodeScriptReplace(children[i]);\n", " }\n", " }\n", "\n", " return node;\n", " }\n", "\n", " this.nodeScriptClone = function (node) {\n", " let script = document.createElement(&quot;script&quot;);\n", " script.text = node.innerHTML;\n", "\n", " let i = -1, attrs = node.attributes, attr;\n", " while (++i &lt; attrs.length) {\n", " script.setAttribute((attr = attrs[i]).name, attr.value);\n", " }\n", " return script;\n", " }\n", "\n", " this.nodeScriptIs = function (node) {\n", " return node.tagName === 'SCRIPT';\n", " }\n", " })()\n", "\n", " window.call_DataFrame = function (f) {\n", " return f();\n", " };\n", "\n", " let funQueue = window[&quot;kotlinQueues&quot;] &amp;&amp; window[&quot;kotlinQueues&quot;][&quot;DataFrame&quot;];\n", " if (funQueue) {\n", " funQueue.forEach(function (f) {\n", " f();\n", " });\n", " funQueue = [];\n", " }\n", "})()\n", "\n", "&sol;*&lt;!--*&sol;\n", "call_DataFrame(function() { DataFrame.addTable({ cols: [{ name: &quot;&lt;span title=&bsol;&quot;name: String&bsol;&quot;&gt;name&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 1,&bsol;n 1&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 1,&amp;#92;n 1&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 1,&amp;#92;n 1&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 1,&bsol;n 2&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 1,&amp;#92;n 2&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 1,&amp;#92;n 2&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 2,&bsol;n 1&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 2,&amp;#92;n 1&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 2,&amp;#92;n 1&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: [&bsol;n 2,&bsol;n 2&bsol;n ],&bsol;n &amp;#34;text&sol;plain&amp;#34;: &amp;#34;[&amp;#92;n 2,&amp;#92;n 2&amp;#92;n]&amp;#34;,&bsol;n &amp;#34;text&sol;markdown&amp;#34;: &amp;#34;```json&amp;#92;n[&amp;#92;n 2,&amp;#92;n 2&amp;#92;n]&amp;#92;n```&amp;#34;&bsol;n },&bsol;n &amp;#34;metadata&amp;#34;: {&bsol;n &amp;#34;application&sol;json&amp;#34;: {&bsol;n &amp;#34;expanded&amp;#34;: true&bsol;n }&bsol;n }&bsol;n}&bsol;&quot;&gt;{&bsol;n &amp;#34;data&amp;#34;: {&bsol;n &amp;#34;application&sol;&lt;span class=&bsol;&quot;structural&bsol;&quot;&gt;...&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;score: Double&bsol;&quot;&gt;score&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;209712.172221&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;217745.267345&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103881.763059&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103368.085738&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;error: Double&bsol;&quot;&gt;error&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;6204.765083&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;567.128662&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;845.091655&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;1124.203555&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;unit: String&bsol;&quot;&gt;unit&lt;&sol;span&gt;&quot;, children: [], rightAlign: false, values: [&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;,&quot;ops&sol;ms&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;errorMax: Double&bsol;&quot;&gt;errorMax&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;215916.937304&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;218312.396007&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;104726.854714&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;104492.289293&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "{ name: &quot;&lt;span title=&bsol;&quot;errorMin: Double&bsol;&quot;&gt;errorMin&lt;&sol;span&gt;&quot;, children: [], rightAlign: true, values: [&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;203507.407139&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;217178.138683&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;103036.671405&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;,&quot;&lt;span class=&bsol;&quot;formatted&bsol;&quot; title=&bsol;&quot;&bsol;&quot;&gt;&lt;span class=&bsol;&quot;numbers&bsol;&quot;&gt;102243.882183&lt;&sol;span&gt;&lt;&sol;span&gt;&quot;] }, \n", "], id: -536870900, rootId: -536870900, totalRows: 4 } ) });\n", "&sol;*--&gt;*&sol;\n", "\n", "call_DataFrame(function() { DataFrame.renderTable(-536870900) });\n", "\n", "\n", " &lt;&sol;script&gt;\n", " &lt;&sol;html&gt;\"></iframe>\n", " <script>\n", " function o_resize_iframe_out_7() {\n", " let elem = document.getElementById(\"iframe_out_7\");\n", " resize_iframe_out_7(elem);\n", " setInterval(resize_iframe_out_7, 5000, elem);\n", " }\n", " function resize_iframe_out_7(el) {\n", " let h = el.contentWindow.document.body.scrollHeight;\n", " el.height = h === 0 ? 0 : h + 41;\n", " }\n", " </script> <html>\n", " <head>\n", " <style type=\"text/css\">\n", " :root {\n", " --background: #fff;\n", " --background-odd: #f5f5f5;\n", " --background-hover: #d9edfd;\n", " --header-text-color: #474747;\n", " --text-color: #848484;\n", " --text-color-dark: #000;\n", " --text-color-medium: #737373;\n", " --text-color-pale: #b3b3b3;\n", " --inner-border-color: #aaa;\n", " --bold-border-color: #000;\n", " --link-color: #296eaa;\n", " --link-color-pale: #296eaa;\n", " --link-hover: #1a466c;\n", "}\n", "\n", ":root[theme=\"dark\"], :root [data-jp-theme-light=\"false\"], .dataframe_dark{\n", " --background: #303030;\n", " --background-odd: #3c3c3c;\n", " --background-hover: #464646;\n", " --header-text-color: #dddddd;\n", " --text-color: #b3b3b3;\n", " --text-color-dark: #dddddd;\n", " --text-color-medium: #b2b2b2;\n", " --text-color-pale: #737373;\n", " --inner-border-color: #707070;\n", " --bold-border-color: #777777;\n", " --link-color: #008dc0;\n", " --link-color-pale: #97e1fb;\n", " --link-hover: #00688e;\n", "}\n", "\n", "p.dataframe_description {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe {\n", " font-family: \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n", " font-size: 12px;\n", " background-color: var(--background);\n", " color: var(--text-color-dark);\n", " border: none;\n", " border-collapse: collapse;\n", "}\n", "\n", "table.dataframe th, td {\n", " padding: 6px;\n", " border: 1px solid transparent;\n", " text-align: left;\n", "}\n", "\n", "table.dataframe th {\n", " background-color: var(--background);\n", " color: var(--header-text-color);\n", "}\n", "\n", "table.dataframe td {\n", " vertical-align: top;\n", " white-space: nowrap;\n", "}\n", "\n", "table.dataframe th.bottomBorder {\n", " border-bottom-color: var(--bold-border-color);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(odd) {\n", " background: var(--background-odd);\n", "}\n", "\n", "table.dataframe tbody > tr:nth-child(even) {\n", " background: var(--background);\n", "}\n", "\n", "table.dataframe tbody > tr:hover {\n", " background: var(--background-hover);\n", "}\n", "\n", "table.dataframe a {\n", " cursor: pointer;\n", " color: var(--link-color);\n", " text-decoration: none;\n", "}\n", "\n", "table.dataframe tr:hover > td a {\n", " color: var(--link-color-pale);\n", "}\n", "\n", "table.dataframe a:hover {\n", " color: var(--link-hover);\n", " text-decoration: underline;\n", "}\n", "\n", "table.dataframe img {\n", " max-width: fit-content;\n", "}\n", "\n", "table.dataframe th.complex {\n", " background-color: var(--background);\n", " border: 1px solid var(--background);\n", "}\n", "\n", "table.dataframe .leftBorder {\n", " border-left-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightBorder {\n", " border-right-color: var(--inner-border-color);\n", "}\n", "\n", "table.dataframe .rightAlign {\n", " text-align: right;\n", "}\n", "\n", "table.dataframe .expanderSvg {\n", " width: 8px;\n", " height: 8px;\n", " margin-right: 3px;\n", "}\n", "\n", "table.dataframe .expander {\n", " display: flex;\n", " align-items: center;\n", "}\n", "\n", "/* formatting */\n", "\n", "table.dataframe .null {\n", " color: var(--text-color-pale);\n", "}\n", "\n", "table.dataframe .structural {\n", " color: var(--text-color-medium);\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .dataFrameCaption {\n", " font-weight: bold;\n", "}\n", "\n", "table.dataframe .numbers {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe td:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "table.dataframe tr:hover .formatted .structural, .null {\n", " color: var(--text-color-dark);\n", "}\n", "\n", "\n", " </style>\n", " </head>\n", " <body>\n", " <table class=\"dataframe\" id=\"static_df_-536870899\"><thead><tr><th class=\"bottomBorder\" style=\"text-align:left\">name</th><th class=\"bottomBorder\" style=\"text-align:left\">score</th><th class=\"bottomBorder\" style=\"text-align:left\">error</th><th class=\"bottomBorder\" style=\"text-align:left\">unit</th><th class=\"bottomBorder\" style=\"text-align:left\">errorMax</th><th class=\"bottomBorder\" style=\"text-align:left\">errorMin</th></tr></thead><tbody><tr><td style=\"vertical-align:top\">[1,1]</td><td style=\"vertical-align:top\">209712.172221</td><td style=\"vertical-align:top\">6204.765083</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">215916.937304</td><td style=\"vertical-align:top\">203507.407139</td></tr><tr><td style=\"vertical-align:top\">[1,2]</td><td style=\"vertical-align:top\">217745.267345</td><td style=\"vertical-align:top\">567.128662</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">218312.396007</td><td style=\"vertical-align:top\">217178.138683</td></tr><tr><td style=\"vertical-align:top\">[2,1]</td><td style=\"vertical-align:top\">103881.763059</td><td style=\"vertical-align:top\">845.091655</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">104726.854714</td><td style=\"vertical-align:top\">103036.671405</td></tr><tr><td style=\"vertical-align:top\">[2,2]</td><td style=\"vertical-align:top\">103368.085738</td><td style=\"vertical-align:top\">1124.203555</td><td style=\"vertical-align:top\">ops/ms</td><td style=\"vertical-align:top\">104492.289293</td><td style=\"vertical-align:top\">102243.882183</td></tr></tbody></table>\n", " </body>\n", " <script>\n", " document.getElementById(\"static_df_-536870899\").style.display = \"none\";\n", " </script>\n", " </html>" ],
"application/kotlindataframe+json" : "{\"$version\":\"2.1.1\",\"metadata\":{\"columns\":[\"name\",\"score\",\"error\",\"unit\",\"errorMax\",\"errorMin\"],\"types\":[{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.String\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"},{\"kind\":\"ValueColumn\",\"type\":\"kotlin.Double\"}],\"nrow\":4,\"ncol\":6},\"kotlin_dataframe\":[{\"name\":\"[1,1]\",\"score\":209712.17222125144,\"error\":6204.7650826986865,\"unit\":\"ops/ms\",\"errorMax\":215916.93730395014,\"errorMin\":203507.40713855275},{\"name\":\"[1,2]\",\"score\":217745.26734478574,\"error\":567.1286622763312,\"unit\":\"ops/ms\",\"errorMax\":218312.39600706208,\"errorMin\":217178.1386825094},{\"name\":\"[2,1]\",\"score\":103881.76305918726,\"error\":845.091654613496,\"unit\":\"ops/ms\",\"errorMax\":104726.85471380076,\"errorMin\":103036.67140457376},{\"name\":\"[2,2]\",\"score\":103368.08573800913,\"error\":1124.2035547028786,\"unit\":\"ops/ms\",\"errorMax\":104492.28929271201,\"errorMin\":102243.88218330625}]}"
},
"execution_count" : 7,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 7
}, {
"metadata" : {
"ExecuteTime" : {
"end_time" : "2025-09-24T15:40:00.550802Z",
"start_time" : "2025-09-24T15:40:00.344226Z"
}
},
"cell_type" : "code",
"source" : [ "// Plot the same test with its different @Params\n", "mathBenchmarkWithErrorRange.plot {\n", " bars {\n", " x(name)\n", " y(score)\n", " }\n", " errorBars {\n", " x(name)\n", " y(score)\n", " yMin(errorMin)\n", " yMax(errorMax)\n", " }\n", "}" ],
"id" : "c263a596b0f96021",
"outputs" : [ {
"data" : {
"text/html" : [ " <iframe src='about:blank' style='border:none !important;' width='600' height='400' srcdoc=\"&lt;html lang=&quot;en&quot;>\n", " &lt;head>\n", " &lt;meta charset=&quot;UTF-8&quot;>\n", " &lt;style> html, body { margin: 0; overflow: hidden; } &lt;/style>\n", " &lt;script type=&quot;text/javascript&quot; data-lets-plot-script=&quot;library&quot; src=&quot;https://cdn.jsdelivr.net/gh/JetBrains/[email protected]/js-package/distr/lets-plot.min.js&quot;>&lt;/script>\n", " &lt;/head>\n", " &lt;body>\n", " &lt;div id=&quot;rHjNdq&quot;>&lt;/div>\n", " &lt;script type=&quot;text/javascript&quot; data-lets-plot-script=&quot;plot&quot;>\n", " \n", " (function() {\n", " // ----------\n", " \n", " var plotSpec={\n", "&quot;mapping&quot;:{\n", "},\n", "&quot;data&quot;:{\n", "&quot;score&quot;:[209712.17222125144,217745.26734478574,103881.76305918726,103368.08573800913],\n", "&quot;name&quot;:[&quot;[1,1]&quot;,&quot;[1,2]&quot;,&quot;[2,1]&quot;,&quot;[2,2]&quot;],\n", "&quot;errorMax&quot;:[215916.93730395014,218312.39600706208,104726.85471380076,104492.28929271201],\n", "&quot;errorMin&quot;:[203507.40713855275,217178.1386825094,103036.67140457376,102243.88218330625]\n", "},\n", "&quot;kind&quot;:&quot;plot&quot;,\n", "&quot;scales&quot;:[{\n", "&quot;aesthetic&quot;:&quot;y&quot;,\n", "&quot;limits&quot;:[null,null]\n", "},{\n", "&quot;aesthetic&quot;:&quot;x&quot;,\n", "&quot;discrete&quot;:true\n", "},{\n", "&quot;aesthetic&quot;:&quot;y&quot;,\n", "&quot;limits&quot;:[null,null]\n", "},{\n", "&quot;aesthetic&quot;:&quot;x&quot;,\n", "&quot;discrete&quot;:true\n", "}],\n", "&quot;layers&quot;:[{\n", "&quot;mapping&quot;:{\n", "&quot;y&quot;:&quot;score&quot;,\n", "&quot;x&quot;:&quot;name&quot;\n", "},\n", "&quot;stat&quot;:&quot;identity&quot;,\n", "&quot;sampling&quot;:&quot;none&quot;,\n", "&quot;inherit_aes&quot;:false,\n", "&quot;position&quot;:&quot;dodge&quot;,\n", "&quot;geom&quot;:&quot;bar&quot;,\n", "&quot;data&quot;:{\n", "}\n", "},{\n", "&quot;mapping&quot;:{\n", "&quot;y&quot;:&quot;score&quot;,\n", "&quot;x&quot;:&quot;name&quot;,\n", "&quot;ymin&quot;:&quot;errorMin&quot;,\n", "&quot;ymax&quot;:&quot;errorMax&quot;\n", "},\n", "&quot;stat&quot;:&quot;identity&quot;,\n", "&quot;sampling&quot;:&quot;none&quot;,\n", "&quot;inherit_aes&quot;:false,\n", "&quot;position&quot;:&quot;dodge&quot;,\n", "&quot;geom&quot;:&quot;errorbar&quot;,\n", "&quot;data&quot;:{\n", "}\n", "}],\n", "&quot;data_meta&quot;:{\n", "&quot;series_annotations&quot;:[{\n", "&quot;type&quot;:&quot;str&quot;,\n", "&quot;column&quot;:&quot;name&quot;\n", "},{\n", "&quot;type&quot;:&quot;float&quot;,\n", "&quot;column&quot;:&quot;score&quot;\n", "},{\n", "&quot;type&quot;:&quot;float&quot;,\n", "&quot;column&quot;:&quot;errorMin&quot;\n", "},{\n", "&quot;type&quot;:&quot;float&quot;,\n", "&quot;column&quot;:&quot;errorMax&quot;\n", "}]\n", "},\n", "&quot;spec_id&quot;:&quot;5&quot;\n", "};\n", " var containerDiv = document.getElementById(&quot;rHjNdq&quot;);\n", " \n", " var toolbar = null;\n", " var plotContainer = containerDiv; \n", " \n", " var options = {\n", " sizing: {\n", " width_mode: &quot;fixed&quot;,\n", " height_mode: &quot;fixed&quot;,\n", " width: 600.0,\n", " height: 400.0\n", " }\n", " };\n", " var fig = LetsPlot.buildPlotFromProcessedSpecs(plotSpec, -1, -1, plotContainer, options);\n", " if (toolbar) {\n", " toolbar.bind(fig);\n", " }\n", " \n", " // ----------\n", " })();\n", " \n", " &lt;/script>\n", " &lt;/body>\n", "&lt;/html>\"></iframe> <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" display=\"block\" class=\"plt-container\" id=4b9253bf-3907-4cb4-a724-21d6b0513094 width=\"100%\" height=\"100%\" style=\"max-width: 600.0px; max-height: 400.0px;\" viewBox=\"0 0 600.0 400.0\" preserveAspectRatio=\"xMinYMin meet\">\n", " <style type=\"text/css\">\n", " .plt-container {\n", " font-family: Lucida Grande, sans-serif;\n", " user-select: none;\n", " -webkit-user-select: none;\n", " -moz-user-select: none;\n", " -ms-user-select: none;\n", "}\n", "text {\n", " text-rendering: optimizeLegibility;\n", "}\n", "#pf2O3tc .plot-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 16.0px;\n", "\n", "}\n", "#pf2O3tc .plot-subtitle {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .plot-caption {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .hyperlink-element {\n", "fill: #118ed8;\n", "font-weight: normal;\n", " font-style: normal;\n", "}\n", "#pf2O3tc .legend-title {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .legend-item {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .axis-title-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .axis-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .axis-tooltip-text-x {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .axis-title-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 15.0px;\n", "\n", "}\n", "#pf2O3tc .axis-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .axis-tooltip-text-y {\n", "fill: #ffffff;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .facet-strip-text-x {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#pf2O3tc .facet-strip-text-y {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-text {\n", "fill: #474747;\n", "font-weight: normal;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-title {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "#dNTwSRX .tooltip-label {\n", "fill: #474747;\n", "font-weight: bold;\n", " font-style: normal;font-family: Lucida Grande, sans-serif;\n", "font-size: 13.0px;\n", "\n", "}\n", "\n", " </style>\n", " <g id=\"pf2O3tc\">\n", " <path fill-rule=\"evenodd\" fill=\"rgb(255,255,255)\" fill-opacity=\"1.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\">\n", " </path>\n", " <g transform=\"translate(29.5 6.5 ) \">\n", " <g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <line x1=\"76.34369070293016\" y1=\"0.0\" x2=\"76.34369070293016\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"193.79552255359192\" y1=\"0.0\" x2=\"193.79552255359192\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"311.2473544042537\" y1=\"0.0\" x2=\"311.2473544042537\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"428.6991862549155\" y1=\"0.0\" x2=\"428.6991862549155\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <line x1=\"0.0\" y1=\"341.0\" x2=\"505.04287695784575\" y2=\"341.0\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"266.6199119468692\" x2=\"505.04287695784575\" y2=\"266.6199119468692\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"192.2398238937384\" x2=\"505.04287695784575\" y2=\"192.2398238937384\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"117.85973584060761\" x2=\"505.04287695784575\" y2=\"117.85973584060761\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " <line x1=\"0.0\" y1=\"43.47964778747678\" x2=\"505.04287695784575\" y2=\"43.47964778747678\" stroke=\"rgb(233,233,233)\" stroke-opacity=\"1.0\" stroke-width=\"1.0\" fill=\"none\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " <g clip-path=\"url(#c66tVWx)\" clip-bounds-jfx=\"[rect (58.95712304215423, 0.0), (505.04287695784575, 341.0)]\">\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g>\n", " <g>\n", " <rect x=\"375.8458619221177\" y=\"187.22945361846612\" height=\"153.77054638153388\" width=\"105.7066486655956\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"258.3940300714559\" y=\"186.46530633086363\" height=\"154.53469366913637\" width=\"105.70664866559565\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"140.94219822079413\" y=\"17.0817568348466\" height=\"323.9182431651534\" width=\"105.70664866559562\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " <rect x=\"23.490366370132364\" y=\"29.031803287399725\" height=\"311.9681967126003\" width=\"105.7066486655956\" stroke=\"rgb(255,255,255)\" stroke-opacity=\"1.0\" fill=\"rgb(17,142,216)\" fill-opacity=\"1.0\" stroke-width=\"1.6500000000000001\">\n", " </rect>\n", " </g>\n", " <g>\n", " <g>\n", " <line x1=\"49.91702853653126\" y1=\"38.26202275140213\" x2=\"102.77035286932906\" y2=\"38.26202275140213\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"49.91702853653126\" y1=\"19.801583823397323\" x2=\"102.77035286932906\" y2=\"19.801583823397323\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"76.34369070293016\" y1=\"38.26202275140213\" x2=\"76.34369070293016\" y2=\"19.801583823397323\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"167.36886038719302\" y1=\"17.92541843159796\" x2=\"220.22218471999085\" y2=\"17.92541843159796\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"167.36886038719302\" y1=\"16.23809523809524\" x2=\"220.22218471999085\" y2=\"16.23809523809524\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"193.79552255359192\" y1=\"17.92541843159796\" x2=\"193.79552255359192\" y2=\"16.23809523809524\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"284.8206922378548\" y1=\"187.722466164526\" x2=\"337.6740165706526\" y2=\"187.722466164526\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"284.8206922378548\" y1=\"185.20814649720126\" x2=\"337.6740165706526\" y2=\"185.20814649720126\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"311.2473544042537\" y1=\"187.722466164526\" x2=\"311.2473544042537\" y2=\"185.20814649720126\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " <g>\n", " <line x1=\"402.27252408851655\" y1=\"188.90182080623498\" x2=\"455.12584842131434\" y2=\"188.90182080623498\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"402.27252408851655\" y1=\"185.55708643069727\" x2=\"455.12584842131434\" y2=\"185.55708643069727\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " <line x1=\"428.6991862549155\" y1=\"188.90182080623498\" x2=\"428.6991862549155\" y2=\"185.55708643069727\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" fill=\"none\" stroke-width=\"1.6500000000000001\">\n", " </line>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <defs>\n", " <clipPath id=\"cwYxOV8\">\n", " <rect x=\"58.95712304215423\" y=\"0.0\" width=\"505.04287695784575\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " <defs>\n", " <clipPath id=\"c66tVWx\">\n", " <rect x=\"58.95712304215423\" y=\"0.0\" width=\"505.04287695784575\" height=\"341.0\">\n", " </rect>\n", " </clipPath>\n", " </defs>\n", " </g>\n", " <g>\n", " <g transform=\"translate(58.95712304215423 341.0 ) \">\n", " <g transform=\"translate(76.34369070293016 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[1,1]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(193.79552255359192 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[1,2]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(311.2473544042537 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[2,1]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(428.6991862549155 0.0 ) \">\n", " <line stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" x2=\"0.0\" y2=\"4.0\">\n", " </line>\n", " <g transform=\"translate(0.0 7.0 ) \">\n", " <text class=\"axis-text-x\" text-anchor=\"middle\" dy=\"0.7em\">\n", " <tspan>[2,2]</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <line x1=\"0.0\" y1=\"0.0\" x2=\"505.04287695784575\" y2=\"0.0\" stroke-width=\"1.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\">\n", " </line>\n", " </g>\n", " <g transform=\"translate(58.95712304215423 0.0 ) \">\n", " <g transform=\"translate(0.0 341.0 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>0</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 266.6199119468692 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>50,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 192.2398238937384 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>100,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 117.85973584060761 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>150,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " <g transform=\"translate(0.0 43.47964778747678 ) \">\n", " <g transform=\"translate(-3.0 0.0 ) \">\n", " <text class=\"axis-text-y\" text-anchor=\"end\" dy=\"0.35em\">\n", " <tspan>200,000</tspan>\n", " </text>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " </g>\n", " <g transform=\"translate(16.0 177.0 ) rotate(-90.0 ) \">\n", " <text class=\"axis-title-y\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>score</tspan>\n", " </text>\n", " </g>\n", " <g transform=\"translate(340.9785615210771 393.0 ) \">\n", " <text class=\"axis-title-x\" y=\"0.0\" text-anchor=\"middle\">\n", " <tspan>name</tspan>\n", " </text>\n", " </g>\n", " <path fill=\"rgb(0,0,0)\" fill-opacity=\"0.0\" stroke=\"rgb(71,71,71)\" stroke-opacity=\"1.0\" stroke-width=\"0.0\" d=\"M0.0 0.0 L0.0 400.0 L600.0 400.0 L600.0 0.0 Z\" pointer-events=\"none\">\n", " </path>\n", " </g>\n", " <g id=\"dNTwSRX\">\n", " </g>\n", "</svg>\n", " <script>document.getElementById(\"4b9253bf-3907-4cb4-a724-21d6b0513094\").style.display = \"none\";</script>" ],
"application/plot+json" : {
"output_type" : "lets_plot_spec",
"output" : {
"mapping" : { },
"data" : {
"score" : [ 209712.17222125144, 217745.26734478574, 103881.76305918726, 103368.08573800913 ],
"name" : [ "[1,1]", "[1,2]", "[2,1]", "[2,2]" ],
"errorMax" : [ 215916.93730395014, 218312.39600706208, 104726.85471380076, 104492.28929271201 ],
"errorMin" : [ 203507.40713855275, 217178.1386825094, 103036.67140457376, 102243.88218330625 ]
},
"kind" : "plot",
"scales" : [ {
"aesthetic" : "y",
"limits" : [ null, null ]
}, {
"aesthetic" : "x",
"discrete" : true
}, {
"aesthetic" : "y",
"limits" : [ null, null ]
}, {
"aesthetic" : "x",
"discrete" : true
} ],
"layers" : [ {
"mapping" : {
"y" : "score",
"x" : "name"
},
"stat" : "identity",
"sampling" : "none",
"inherit_aes" : false,
"position" : "dodge",
"geom" : "bar"
}, {
"mapping" : {
"y" : "score",
"x" : "name",
"ymin" : "errorMin",
"ymax" : "errorMax"
},
"stat" : "identity",
"sampling" : "none",
"inherit_aes" : false,
"position" : "dodge",
"geom" : "errorbar"
} ],
"data_meta" : {
"series_annotations" : [ {
"type" : "str",
"column" : "name"
}, {
"type" : "float",
"column" : "score"
}, {
"type" : "float",
"column" : "errorMin"
}, {
"type" : "float",
"column" : "errorMax"
} ]
}
},
"apply_color_scheme" : true,
"swing_enabled" : true
}
},
"execution_count" : 8,
"metadata" : { },
"output_type" : "execute_result"
} ],
"execution_count" : 8
} ],
"metadata" : {
"kernelspec" : {
"display_name" : "Kotlin",
"language" : "kotlin",
"name" : "kotlin"
},
"language_info" : {
"name" : "kotlin",
"version" : "2.2.20",
"mimetype" : "text/x-kotlin",
"file_extension" : ".kt",
"pygments_lexer" : "kotlin",
"codemirror_mode" : "text/x-kotlin",
"nbconvert_exporter" : ""
}
},
"nbformat" : 4,
"nbformat_minor" : 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment