1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[80],{820:(e,t,s)=>{"use strict";s.d(t,{h:()=>o});var r=s(4232),a=s(1777),l=s(6283);function o(e={}){let{excludeHipo:t=!1}=e,s=(0,a.d4)(e=>e.results.availableSolvers);return(0,r.useMemo)(()=>t?s.filter(e=>!l.uG.includes(e)):s,[s,t])}},3087:(e,t,s)=>{"use strict";s.d(t,{A:()=>a});var r=s(7876);s(4232);let a=({direction:e,label:t="",className:s="",size:a="sm",color:l="black"})=>{let o="sm"===a?6:"md"===a?8:10,i={sm:2.5,md:3,lg:4};return(0,r.jsxs)("div",{className:`inline-flex flex-col items-center -rotate-90 ${{sm:"text-[10px]",md:"text-xs",lg:"text-sm"}[a]} ${s}`,style:{display:"inline-flex",color:l},children:[(0,r.jsxs)("svg",{width:"100%",height:{sm:10,md:12,lg:14}[a],viewBox:"0 0 120 12",preserveAspectRatio:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":!0,className:"lower"===e?"transform rotate-180":"",children:[(0,r.jsx)("line",{x1:"2",y1:"6",x2:"113",y2:"6",stroke:"currentColor",strokeWidth:i[a],strokeLinecap:"round"}),(0,r.jsx)("polygon",{points:`115,6 ${115-o},${6-Math.round(.8*o)} ${115-o},${6+Math.round(.8*o)}`,fill:"currentColor",stroke:"currentColor",strokeWidth:Math.max(1,i[a]-1)})]}),(0,r.jsx)("span",{className:"font-bold inline-block whitespace-nowrap",children:t||("lower"===e?"Lower is better":"Higher is better")})]})}},3088:(e,t,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/dashboard/solver-vs-all",function(){return s(3602)}])},3463:(e,t,s)=>{"use strict";s.d(t,{LC:()=>o,OU:()=>m,Vr:()=>n,ac:()=>c,bn:()=>i,nI:()=>u,q0:()=>d});var r=s(310);let a=["#F66C49","#43BF94","#F9CD5A","#3B82F6","#7C3AED","#f58231","#46f0f0","#f032e6","#d2f53c","#fabebe","#008080","#e6beff","#aa6e28","#fffac8","#800000","#aaffc3","#808000","#ffd8b1","#000080","#808080"],l={cbc:"#F9CD5A",glpk:"#7C3AED",gurobi:"#F66C49",highs:"#43BF94",scip:"#3B82F6","highs-hipo":"#ff48c2","highs-ipx":"#6a721d"};function o(e){return l[e]||a[(Object.keys(l).length+1)%a.length]}let i=e=>{if(0===e.length)return{scaleRange:{min:.3,max:1e4},tickValues:[1,10,100,1e3,1e4]};let t=e.flatMap(e=>[e.xaxis,e.yaxis]),s=Math.floor(Math.log10(Math.min(...t))),r=Math.ceil(Math.log10(Math.max(...t))),a=Math.pow(10,r),l=[];for(let e=s;e<=r;e++)l.push(Math.pow(10,e));return{scaleRange:{min:.3,max:a},tickValues:l}},n=(e,t=10)=>Math.ceil(e/t)*t;function c(e){return e.style("position","absolute").style("background","#022B3B").style("border-radius","5px").style("padding","8px").style("font-size","12px").style("font-family","'Lato', sans-serif").style("color","white").style("pointer-events","none").style("z-index","100")}function u(){return c(r.select("body").append("div"))}function m(e,t=2,s="-"){let r=e.split(s),a=[];for(let e=0;e<r.length;e+=t)a.push(r.slice(e,e+t).join(s));return a}let d=(e,t)=>Number(e.year)-Number(t.year)},3602:(e,t,s)=>{"use strict";s.r(t),s.d(t,{default:()=>E});var r=s(7876),a=s(461),l=s(7328),o=s.n(l),i=s(4167),n=s(8230),c=s.n(n),u=s(1694),m=s(4232),d=s(1777),h=s(9099),p=s(310),f=s(3463),b=s(9499),x=s(8468),v=s(8248),g=s(6283),y=s(3087);let w=40,j=100,k=65,$=100,N=({data:e,baseSolver:t,availableSolvers:s})=>{let a=(0,m.useRef)(null),l=(0,m.useRef)(null),[o,n]=(0,m.useState)(0),[c,u]=(0,m.useState)(()=>{let e=s.filter(e=>e!==t);return new Set([t,...e.length>0?[e[0]]:[]])});(0,m.useEffect)(()=>{let e=s.filter(e=>e!==t);u(new Set([t,...e.length>0?[e[0]]:[]]))},[t]);let d=p.max(e,e=>Math.max(e.runtime,e.baseSolverRuntime))||0,h=(0,m.useMemo)(()=>s.reduce((e,t)=>(e[t]=(0,f.LC)(t),e),{}),[s]),N=(0,m.useMemo)(()=>(0,f.LC)(t),[t]),S=e=>{u(s=>{let r=new Set(s);return e===t||(r.has(e)?r.delete(e):r.add(e)),r})};return(0,m.useEffect)(()=>{let e=a.current;if(!e)return;let t=new ResizeObserver(t=>{for(let s of t)n(Math.floor(s.contentRect?.width||e.clientWidth))});return t.observe(e),n(e.clientWidth||0),()=>{t.disconnect()}},[]),(0,m.useEffect)(()=>{let r=o||a.current?.clientWidth||800,i=600+(k-100);p.select(l.current).selectAll("*").remove();let n=p.select(l.current).attr("width",r).attr("height",i).style("overflow","visible"),u=(0,f.nI)(),m=p.scaleBand().domain(e.map(e=>`${e.benchmark}-${e.size}`)).range([$,r-j]).padding(.5),v=s.filter(e=>e!==t&&c.has(e)),y=p.scaleBand().domain(s.filter(e=>e!==t)).range([0,m.bandwidth()]).padding(v.length>3?.2:.4),N=Math.min(Math.max(y.bandwidth(),5),v.length<=2?30:25),S=p.max(e,e=>e.factor)||0,O=p.min(e,e=>e.factor)||0,F=p.scaleLinear().domain([Math.min(O>0?-O:O,S>0?-S:S)-1,Math.max(S,2)]).range([i-k,w]),C=p.scaleLog().domain([Math.min(.3,p.min(e,e=>Math.min(e.runtime,e.baseSolverRuntime))||.3),p.max(e,e=>Math.max(e.runtime,e.baseSolverRuntime))||100]).range([i-k,w]),M=p.axisBottom(m),A=p.axisLeft(F).tickFormat(e=>{if(0===e)return"1";let t=Math.pow(2,Number(e));if(t<1){let e=Math.round(1/t);return`1/${e}`}return t<1e-4?`1/${(1/t).toExponential(1)}`:Number.isInteger(t)?t.toString():t.toFixed(2)}),R=[1,10,100,1e3,b.FJ.SHORT,b.FJ.LONG].filter(e=>e<=d);d<b.FJ.SHORT&&R.push(d);
1let z=p.axisRight(C).tickFormat(e=>{let t=e.valueOf();return t>=100?`${Math.round(t)}s`:t>=10?`${t.toFixed(0)}s`:t>=1?`${t.toFixed(1)}s`:`${t.toFixed(2)}s`}).ticks(5).tickValues(R);return n.append("g").attr("transform",`translate(0,${i-k})`).call(M).call(e=>e.selectAll(".tick text").remove()),n.append("g").attr("transform",`translate(${$},0)`).call(A),n.append("g").attr("transform",`translate(${r-j},0)`).call(z).attr("class","secondcary-axis").selectAll("text").style("fill","#666").attr("dx","10px").attr("dy","0.3em"),n.append("line").attr("x1",$).attr("x2",r-j).attr("y1",F(0)).attr("y2",F(0)).style("stroke","#ccc").style("stroke-dasharray","4,4"),d>=b.FJ.SHORT/2&&n.append("line").attr("x1",$).attr("x2",r-j).attr("y1",C(b.FJ.SHORT)).attr("y2",C(b.FJ.SHORT)).style("stroke","#ff6b6b").style("stroke-width",1).style("stroke-dasharray","4,4"),d>=b.FJ.LONG/2&&n.append("line").attr("x1",$).attr("x2",r-j).attr("y1",C(b.FJ.LONG)).attr("y2",C(b.FJ.LONG)).style("stroke","#ff6b6b").style("stroke-width",1).style("stroke-dasharray","4,4"),n.selectAll(".bar").data(e.filter(e=>e.solver!==t&&c.has(e.solver))).enter().append("rect").attr("class","bar").style("cursor","pointer").attr("x",e=>(m(`${e.benchmark}-${e.size}`)||0)+(y(e.solver)||0)+(y.bandwidth()-N)/2).attr("width",N).attr("height",e=>"ok"!==e.status&&"ok"!==e.baseSolverStatus?0:Math.abs(F(e.factor)-F(0))).attr("y",e=>"ok"!==e.status&&"ok"!==e.baseSolverStatus?F(0):"ok"!==e.status&&"ok"===e.baseSolverStatus?F(e.factor):"ok"!==e.baseSolverStatus&&"ok"===e.status?F(0):e.factor>0?F(e.factor):F(0)).attr("fill",e=>h[e.solver]).attr("opacity",.8).on("mouseover",(e,s)=>{let r;if(p.select(e.currentTarget).transition().duration(100).attr("opacity",1),u.transition().duration(200).style("opacity",1),"ok"!==s.status&&"ok"===s.baseSolverStatus)r=`Ratio: N/A because ${s.solver} TO`;else if("ok"!==s.status&&"ok"!==s.baseSolverStatus)r="Ratio: N/A (both TO)";else{let e=Math.pow(2,s.factor);r=`Ratio: ${e<.01?e.toExponential(1):(0,x.zJ)({value:e,maximumFractionDigits:3})}`}u.html(`Problem: ${s.benchmark}-${s.size}<br/>${s.solver}: ${(0,x.zJ)({value:s.runtime})}s (${s.status})<br/>${t}: ${(0,x.zJ)({value:s.baseSolverRuntime})}s (${s.baseSolverStatus})<br/>`+r).style("left",`${e.pageX+10}px`).style("top",`${e.pageY-28}px`)}).on("mouseout",e=>{p.select(e.currentTarget).transition().duration(100).attr("opacity",.8),u.transition().duration(500).style("opacity",0)}),n.selectAll(".failure-indicator").data(e.filter(e=>e.solver!==t&&c.has(e.solver))).enter().append("text").attr("class","failure-indicator").style("cursor","pointer").attr("x",e=>(m(`${e.benchmark}-${e.size}`)||0)+(y(e.solver)||0)+(y.bandwidth()-N)/2+N/2).attr("y",e=>"ok"!==e.status&&"ok"!==e.baseSolverStatus?F(0)-10:"ok"!==e.status&&"ok"===e.baseSolverStatus?F(e.factor)-5:"ok"!==e.baseSolverStatus&&"ok"===e.status?F(e.factor)+15:F(0)).attr("text-anchor","middle").attr("font-size","12px").text(e=>"ok"!==e.status&&"ok"!==e.baseSolverStatus?"â":"ok"!==e.status?"\uD83D\uDD3A":"ok"!==e.baseSolverStatus?"\uD83D\uDD3B":"").on("mouseover",(e,s)=>{let r;if(u.transition().duration(200).style("opacity",1),"ok"!==s.status&&"ok"===s.baseSolverStatus)r=`Ratio: N/A because ${s.solver} TO`;else if("ok"!==s.status&&"ok"!==s.baseSolverStatus)r="Ratio: N/A (both TO)";else{let e=Math.pow(2,s.factor);r=`Ratio: ${e<.01?e.toExponential(1):(0,x.zJ)({value:e,maximumFractionDigits:3})}`}u.html(`Problem: ${s.benchmark}-${s.size}<br/>${s.solver}: ${(0,x.zJ)({value:s.runtime})}s (${s.status})<br/>${t}: ${(0,x.zJ)({value:s.baseSolverRuntime})}s (${s.baseSolverStatus})<br/>`+r).style("left",`${e.pageX+10}px`).style("top",`${e.pageY-28}px`)}).on("mouseout",()=>{u.transition().duration(500).style("opacity",0)}),n.selectAll(".scatter-point").data(e.filter(e=>e.solver===t&&c.has(e.solver))).enter().append(e=>"ok"!==e.status?document.createElementNS("http://www.w3.org/2000/svg","path"):document.createElementNS("http://www.w3.org/2000/svg","circle")).attr("class","scatter-point").style("cursor","pointer").each(function(e){let s=p.select(this),r=(m(`${e.benchmark}-${e.size}`)||0)+m.bandwidth()/2,a=C(e.runtime);"ok"!==e.status?s.attr("d",`M${r-4},${a-4} L${r+4},${a+4} M${r-4},${a+4} L${r+4},${a-4}`).attr("stroke",h[t]).attr("fill","none"):s.attr("cx",r).attr("cy",a).attr("r",4).attr("fill",h[t]),s.on("mouseover",r=>{s.attr("opacity",.7),u.transition().duration(200).style("opacity",1),u.html(`Problem: ${e.benchmark}-${e.size}<br/>${t}: ${(0,x.zJ)({value:e.runtime})}s (${e.status})<br/>`).style("left",`${r.pageX+10}px`).style("top",`${r.pageY-28}px`)}).on("mouseout",()=>{s.attr("opacity",1),u.transition().duration(500).style("opacity",0)})}),n.append("text").attr("x",r/2).attr("y",i-30).attr("text-anchor","middle").style("fill","rgb(79 78 78)").text(`Problems sorted by solving time of ${(0,g.Am)(t)}`),n.append("text").attr("transform","rotate(-90)").attr("x",-(i/2)+40).attr("y",$-50).attr("text-anchor","middle").attr("font-size","12px").style("fill","rgb(79 78 78)").text("Runtime ratio (log scale)"),n.append("text").attr("transform","rotate(-90)").attr("x",-(i/2)).attr("y",r-j+70).attr("text-anchor","middle").attr("font-size","12px").style("fill","rgb(79 78 78)").text(`Runtime of ${(0,g.Am)(t)} (s)`),()=>{u.remove()}},[e,t,h,c,s,o]),(0,r.jsxs)("div",{children:[(0,r.jsx)("h6",{className:"mb-2",children:"Relative performance plot"}),(0,r.jsxs)("p",{className:"text-navy mb-6 w-full",children:["This plot (inspired by Matthias Miltenberger's"," ",(0,r.jsx)("a",{href:"https://mattmilten.github.io/mittelmann-plots/",children:"Mittelmann plots"}),") shows the runtime ratios (relative speedup factors) for each benchmark problem with respect to the selected base solver's runtime. Ratios above 1 (bars above the x-axis) are problems where the base solver performs better, and ratios below 1 (bars below the x-axis) are those where the other solver performs better. Problems are sorted by the runtime of the base solver."]}),(0,r.jsxs)("div",{className:"bg-[#F4F6FA] px-4 pt-4 pb-0 rounded-xl",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-wrap gap-4 legend-container pb-4 ml-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer select-none",onClick:()=>S(t),children:[(0,r.jsx)("div",{className:"flex items-center justify-center w-4 h-4",children:(0,r.jsx)("div",{className:`w-4 h-4 rounded-full transition-opacity ${c.has(t)?"opacity-100":"opacity-30"}`,style:{backgroundColor:h[t]}})}),(0,r.jsx)("span",{className:`text-sm font-bold transition-colors ${c.has(t)?"text-navy":"text-dark-grey opacity-50"}`,children:(0,g.Am)(t)})]}),s.filter(e=>e!==t).sort((e,t)=>
1(0,g.Am)(e).localeCompare((0,g.Am)(t))).map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-2 cursor-pointer select-none",onClick:()=>S(e),children:[(0,r.jsx)("div",{className:"w-4 h-4 rounded-sm transition-opacity",style:{backgroundColor:h[e],opacity:c.has(e)?.8:.2}}),(0,r.jsx)("span",{className:`text-sm font-bold transition-colors ${c.has(e)?"text-navy":"text-dark-grey opacity-50"}`,children:(0,g.Am)(e)})]},e)),(0,r.jsx)("div",{className:"text-sm",children:"(click a solver to toggle showing it on the plot)"})]}),(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row justify-between items-start text-sm mb-4 ml-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{children:"\uD83D\uDD3B/\uD83D\uDD3A: base / other solver failed to solve in time limit"}),(0,r.jsx)("p",{children:"â : both solvers failed to solve in time limit"})]}),(0,r.jsxs)("div",{className:"lg:mr-24",children:[(0,r.jsxs)("p",{className:"flex gap-1 items-center",children:[(0,r.jsx)(i.GQ,{fill:N,className:"size-3"}),"base solver solved successfully"]}),(0,r.jsxs)("p",{className:"flex gap-1 items-center",children:[(0,r.jsx)(i.US,{fill:N,className:"size-3"}),"base solver failed to solve in time limit"]})]})]})]}),(0,r.jsxs)("div",{ref:a,className:"relative",children:[(0,r.jsx)("div",{className:"absolute",style:{left:`${$-52}px`,top:`${w+30}px`,transform:"translateX(-50%)"},children:(0,r.jsx)(y.A,{direction:"higher",label:`${(0,g.Am)(t)} better than other solver`,size:"sm",color:"rgb(79,78,78)"})}),(0,r.jsx)("div",{className:"absolute",style:{left:`${$-52}px`,bottom:"150px",transform:"translateX(-50%)"},children:(0,r.jsx)(y.A,{direction:"lower",label:`other solver better than ${(0,g.Am)(t)}`,size:"sm",color:"rgb(79,78,78)"})}),(0,r.jsx)("svg",{ref:l})]})]}),(0,r.jsx)("div",{className:"mt-8",children:(0,r.jsx)(v.A,{})})]})};var S=s(5041),O=s(5909),F=s(7090),C=s(6458),M=s(820),A=s(3365);let R=[{label:"HiGHS",name:"highs",sourceCode:"https://github.com/ERGO-Code/HiGHS",website:"https://highs.dev/",license:"MIT License"},{label:"SCIP",name:"scip",sourceCode:"https://github.com/scipopt/scip",website:"https://www.scipopt.org/",license:"Apache License 2.0"},{label:"CBC",name:"cbc",sourceCode:"https://github.com/coin-or/Cbc",website:"https://coin-or.github.io/Cbc/intro.html",license:"Eclipse Public License 2.0"},{label:"GLPK",name:"glpk",sourceCode:"https://github.com/firedrakeproject/glpk",website:"https://www.gnu.org/software/glpk/",license:"GNU General Public License v3.0"},{label:"Gurobi",name:"gurobi",website:"https://www.gurobi.com/solutions/gurobi-optimizer/",license:"Commercial License"}],z=()=>{let e=(0,h.useRouter)(),t=(0,M.h)(),s=(0,C.$)(),l=new Map,o=(0,d.d4)(e=>e.results.fullMetaData);s.forEach(e=>{let t=`${e.benchmark}-${e.size}`;l.set(t,(l.get(t)||0)+1)});let[i,n]=(0,m.useState)(""),c=s.filter(e=>!g.uG.includes(i)||o[(0,A.ZA)(e)]?.problemClass==="LP"),[u,p]=(0,m.useState)([]);(0,m.useEffect)(()=>{if(!t.length||!e.isReady)return;let s=e.query.solver;s&&t.includes(s)?n(s):i||n(t[0]),p(t)},[t,e.isReady]),(0,m.useEffect)(()=>{if(!i||!e.isReady)return;let t={...e.query};t.solver!==i&&(t.solver=i,e.push({pathname:e.pathname,query:t},void 0,{shallow:!0,scroll:!1}))},[i,e.isReady]);let f=(0,m.useMemo)(()=>{if(!i)return[];let e=c.filter(e=>e.solver===i).map(e=>({benchmark:e.benchmark,solver:e.solver,size:e.size,status:e.status,runtime:e.runtime||0,baseSolverRuntime:e.runtime||0,baseSolverStatus:e.status,factor:0,logRuntime:(0,O.F)(e.runtime||0)})),t=c.filter(e=>e.solver!==i).map(t=>{var s;let r=e.find(e=>e.benchmark===t.benchmark&&e.size===t.size);return r?{benchmark:t.benchmark,solver:t.solver,status:t.status,size:t.size,runtime:t.runtime||0,baseSolverRuntime:r?.runtime||0,baseSolverStatus:r?.status,factor:(s=r?.runtime||0,Math.log2(((t.runtime||0)+10)/(s+10))),logRuntime:(0,O.F)(t.runtime||0)}:{benchmark:t.benchmark,solver:t.solver,status:t.status,size:t.size,runtime:t.runtime||0,baseSolverRuntime:1,baseSolverStatus:"TO",factor:1,logRuntime:1}}),s=new Map(e.map(e=>[`${e.benchmark}-${e.size}`,e.runtime]));return[...e,...t].sort((e,t)=>{let r=s.get(`${e.benchmark}-${e.size}`)||0,a=s.get(`${t.benchmark}-${t.size}`)||0;return r!==a?r-a:e.solver===i?-1:1})},[i,c]),b=(0,m.useMemo)(()=>
1{if(!i)return null;let e=i.split("--")[0].toLowerCase();return R.find(t=>t.name.toLowerCase()===e)},[i]);return(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex flex-col lg:flex-row gap-4 mb-4",children:[(0,r.jsxs)("div",{className:"w-full lg:w-1/2 bg-[#F0F4F2] rounded-lg shadow-sm",children:[(0,r.jsx)("h6",{className:"p-3 pl-3.5 border-b border-gray-200",children:"Select Solver"}),(0,r.jsx)(F.A,{value:i,onChange:n,options:u,formatOption:e=>{let t=c.find(t=>t.solver===e),s=(0,g.Am)(e);return t&&t.solverVersion?`${s} v${t.solverVersion}`:s},label:"Solver",bgColor:"bg-[#F0F4F2]",optionActiveBg:"bg-[#F0F4F2]",className:"font-bold text-navy tag-line-lg"})]}),b&&(0,r.jsxs)("div",{className:"w-full lg:w-1/2 bg-[#F0F4F2] rounded-lg shadow-sm",children:[(0,r.jsx)("h6",{className:"p-3 pl-3.5 border-b border-gray-200",children:"Solver Information"}),(0,r.jsxs)("div",{className:"p-4",children:[(0,r.jsx)("div",{className:"mb-4 text-navy tag-line-lg font-bold",children:b.label}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsxs)("a",{href:b.website,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 transition-colors",children:[(0,r.jsx)(S.f35,{className:"w-5 h-5"}),(0,r.jsx)("span",{className:"hover:underline underline-offset-4",children:"Official Website"})]}),b.sourceCode&&(0,r.jsxs)("a",{href:b.sourceCode,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-3 transition-colors",children:[(0,r.jsx)(S.hL4,{className:"w-5 h-5"}),(0,r.jsx)("span",{className:"hover:underlineunderline-offset-4",children:"Source Code"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 transition-colors",children:[(0,r.jsx)(S.CbL,{className:"w-5 h-5"}),(0,r.jsx)("span",{children:b.license})]})]})]})]})]}),f.length>0?(0,r.jsx)(N,{data:f,baseSolver:i.split("--")[0],availableSolvers:t},u.join("-")):(0,r.jsx)(a.Ps,{})]})},E=()=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(o(),{children:[(0,r.jsx)("title",{children:"Solver vs All | Open Energy Benchmark"}),(0,r.jsx)("meta",{name:"description",content:"Browse details of each solver on the Open Energy Benchmark platform, including relative performance plots comparing each solver against all others."})]}),(0,r.jsxs)("div",{className:"bg-light-blue",children:[(0,r.jsx)(a.Fp,{}),(0,r.jsx)(a.HD,{header:(0,r.jsxs)("div",{children:[(0,r.jsx)(a.DH,{children:(0,r.jsx)("div",{className:"flex text-navy text-sm text-opacity-50 items-center space-x-1",children:(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(c(),{href:u.n.root,"aria-label":"Dashboard home",children:(0,r.jsx)(i.fA,{className:"w-[1.125rem] h-[1.125rem"})}),(0,r.jsx)(i.HK,{fill:"none",className:"size-3 stroke-navy"}),(0,r.jsx)("p",{className:"self-center font-semibold whitespace-nowrap text-opacity-70",children:"Solver vs All"})]})})}),(0,r.jsx)("h1",{className:"h5",children:"Solver vs All"}),(0,r.jsx)("p",{className:"mb-6 mt-4 max-w-screen-lg",children:"This page shows details of each solver available on this platform, along with a relative performance plot that lets you compare the selected solver against all other solvers."})]}),children:(0,r.jsx)(r.Fragment,{children:(0,r.jsx)(z,{})})})]}),(0,r.jsx)(a.wi,{})]})},5909:(e,t,s)=>{"use strict";function r(e,t=10){return e<=0?0:Math.log(e)/Math.log(t)}s.d(t,{F:()=>r})},6283:(e,t,s)=>{"use strict";s.d(t,{Am:()=>l,BX:()=>o,uG:()=>a});let r=new Map([["glpk","GLPK"],["scip","SCIP"],["highs","HiGHS"],["cbc","CBC"],["gurobi","Gurobi"],["highs-hipo","HiGHS-HiPO"],["highs-ipx","HiGHS-IPX"],["na","N/A"],["single","Single"],["multi","Multi"],["other","Other"],["realistic","Realistic"]]),a=["highs-hipo","highs-ipx"];function l(e){let t=r.get(e)??e;return a.includes(e)?`${t}*`:t}function o(e){let[t,s]=e.split("--");return`${l(t)} v${s}`}},6458:(e,t,s)=>{"use strict";s.d(t,{$:()=>o});var r=s(4232),a=s(1777),l=s(6283);function o(e={}){let{excludeHipo:t=!1,useRawResults:s=!1}=e,i=(0,a.d4)(e=>s?e.results.rawBenchmarkResults:e.results.benchmarkLatestResults);return(0,r.useMemo)(()=>t?i.filter(e=>!l.uG.includes(e.solver)):i,[i,t])}},7090:(e,t,s)=>{"use strict";s.d(t,{A:()=>l});var r=s(7876),a=s(4232);
1let l=({value:e,onChange:t,options:s,formatOption:l,label:o="Select an option",className:i="",bgColor:n="bg-white",optionActiveBg:c="bg-[#F0F4F2]"})=>{let[u,m]=(0,a.useState)(!1),d=(0,a.useRef)(null);return(0,a.useEffect)(()=>{let e=e=>{d.current&&!d.current.contains(e.target)&&m(!1)};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[]),(0,r.jsxs)("div",{className:`relative w-full ${i}`,ref:d,children:[(0,r.jsxs)("button",{type:"button",className:`w-full lg:text-lg pl-3 font-bold ${n} px-4 sm:px-6 py-3 sm:py-4 2 text-navy text-base rounded-b-lg block text-left focus-visible:outline-none`,onClick:()=>m(!u),"aria-haspopup":"listbox","aria-expanded":u,children:[e?l(e):o,(0,r.jsx)("span",{className:"absolute right-4 top-1/2 -translate-y-1/2 pointer-events-none",children:(0,r.jsx)("svg",{width:"12",height:"6",viewBox:"0 0 12 6",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,r.jsx)("path",{d:"M1 1L6 5L11 1",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})})})]}),u&&(0,r.jsx)("ul",{className:"absolute z-10 mt-1 w-full bg-white rounded-lg shadow-lg max-h-60 overflow-auto border",role:"listbox",children:s.map((s,a)=>(0,r.jsx)("li",{className:`cursor-pointer select-none py-2 px-4 ${e===s?`${c} text-navy font-bold`:`text-navy hover:${c} hover:bg-opacity-80`}`,onClick:()=>{t(s),m(!1)},role:"option","aria-selected":e===s,children:l(s)},a))})]})}},8248:(e,t,s)=>{"use strict";s.d(t,{A:()=>i});var r=s(7876),a=s(8230),l=s.n(a),o=s(6283);let i=({})=>(0,r.jsx)("div",{className:"px-2 md:px-5 py-2 text-navy font-lato border border-[#CAD9EF] bg-[#F7F7F9] rounded-2xl",children:(0,r.jsxs)("div",{className:"tag-line-xs leading-1.5",children:["*",(0,r.jsx)("b",{children:"Caveat:"})," Our configuration of ",(0,o.Am)("highs-hipo")," and"," ",(0,o.Am)("highs-ipx")," return only feasible solutions, not necessarily basic, while ",(0,o.Am)("gurobi")," and"," ",(0,o.Am)("highs")," always return basic solutions by default. See our"," ",(0,r.jsx)("span",{className:"hover:underline underline-offset-4 font-bold",children:(0,r.jsx)(l(),{className:"font-bold",href:"/blog/hipo_study","aria-label":"Navigate to blog page",children:"blog post"})})," ","for more details."]})})},9369:(e,t,s)=>{"use strict";s.d(t,{k5:()=>u});var r=s(4232),a={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},l=r.createContext&&r.createContext(a),o=["attr","size","title"];function i(){return(i=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)({}).hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e}).apply(null,arguments)}function n(e,t){var s=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),s.push.apply(s,r)}return s}function c(e){for(var t=1;t<arguments.length;t++){var s=null!=arguments[t]?arguments[t]:{};t%2?n(Object(s),!0).forEach(function(t){var r,a,l;r=e,a=t,l=s[t],(a=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var r=s.call(e,t||"default");if("object"!=typeof r)return r;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(a))in r?Object.defineProperty(r,a,{value:l,enumerable:!0,configurable:!0,writable:!0}):r[a]=l}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(s)):n(Object(s)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(s,t))})}return e}function u(e){return t=>r.createElement(m,i({attr:c({},e.attr)},t),function e(t){return t&&t.map((t,s)=>r.createElement(t.tag,c({key:s},t.attr),e(t.child)))}(e.child))}function m(e){var t=t=>{var s,a=e.attr,l=e.size,n=e.title,u=function(e,t){if(null==e)return{};var s,r,a=function(e,t){if(null==e)return{};var s={};for(var r in e)if(({}).hasOwnProperty.call(e,r)){if(-1!==t.indexOf(r))continue;s[r]=e[r]}return s}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(r=0;r<l.length;r++)s=l[r],-1===t.indexOf(s)&&({}).propertyIsEnumerable.call(e,s)&&(a[s]=e[s])}return a}(e,o),m=l||t.size||"1em";return t.className&&(s=t.className),e.className&&(s=(s?s+" ":"")+e.className),r.createElement("svg",i({stroke:"currentColor",fill:"
2currentColor",strokeWidth:"0"},t.attr,a,u,{className:s,style:c(c({color:e.color||t.color},t.style),e.style),height:m,width:m,xmlns:"http://www.w3.org/2000/svg"}),n&&r.createElement("title",null,n),e.children)};return void 0!==l?r.createElement(l.Consumer,null,e=>t(e)):t(a)}}},e=>{e.O(0,[938,639,310,461,636,593,792],()=>e(e.s=3088)),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.