/**
 * Minified by jsDelivr using Terser v5.37.0.
 * Original file: /npm/mitata@1.0.34/src/main.mjs
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
export{measure,do_not_optimize}from"./lib.mjs";import{kind,measure,print as grint}from"./lib.mjs";let FLAGS=0,$counters=null,COLLECTIONS=[{id:0,name:null,types:[],trials:[]}];export const flags={compact:1,baseline:2};export class B{f=null;_args={};_name="";_group=0;_gc="once";flags=FLAGS;_highlight=!1;constructor(t,e){if(this.f=e,this.name(t),!kind(e))throw new TypeError("expected iterator, generator or one-shot function")}name(t,e=!1){return this._name=t,this.highlight(e),this}gc(t="once"){if(![!0,!1,"once","inner"].includes(t))throw new TypeError("invalid gc type");return this._gc=t,this}highlight(t=!1){if(!t)return this._highlight=!1,this;if(!$.colors.includes(t))throw new TypeError("invalid highlight color");return this._highlight=t,this}compact(t=!0){return t?(this.flags|=flags.compact,this):t?void 0:(this.flags&=~flags.compact,this)}baseline(t=!0){return t?(this.flags|=flags.baseline,this):t?void 0:(this.flags&=~flags.baseline,this)}range(t,e,s,a=8){const r=[];for(let t=e;t<=s;t*=a)r.push(Math.min(t,s));return r.includes(s)||r.push(s),this.args(t,r)}dense_range(t,e,s,a=1){const r=[];for(let t=e;t<=s;t+=a)r.push(t);return r.includes(s)||r.push(s),this.args(t,r)}args(t,e){if(null===t)return delete this._args.x,this;if(Array.isArray(t))return this._args.x=t,this;if(null===e&&"string"==typeof t)return delete this._args[t],this;if(Array.isArray(e)&&"string"==typeof t)return this._args[t]=e,this;if(null!==t&&"object"==typeof t){for(const e in t){const s=t[e];if(null==s)delete this._args[e];else{if(!Array.isArray(s))throw new TypeError("invalid arguments map value");this._args[e]=s}}return this}throw new TypeError("invalid arguments")}*_names(){const t=Object.keys(this._args);if("static"===(0===t.length?"static":1===t.length?"args":"multi-args"))yield this._name;else{const e=new Array(t.length).fill(0),s=t.reduce(((t,e)=>t*this._args[e].length),1);for(let a=0;a<s;a++){{const s={};let a=this._name;for(let a=0;a<t.length;a++)s[t[a]]=this._args[t[a]][e[a]];for(let e=0;e<t.length;e++)a=a.replaceAll(`$${t[e]}`,s[t[e]]);yield a}let s=0;do{e[s]=(1+e[s])%this._args[t[s]].length}while(0===e[s++]&&s<t.length)}}}async run(t=!1){const e=Object.keys(this._args),s=0===e.length?"static":1===e.length?"args":"multi-args",a={$counters:$counters,inner_gc:"inner"===this._gc,gc:!!this._gc&&void 0,heap:await(async()=>{if(globalThis.Bun){const{memoryUsage:t}=await import("bun:jsc");return()=>t().current}try{const{getHeapStatistics:t}=await import("node:v8");return t(),()=>{const e=t();return e.used_heap_size+e.malloced_memory}}catch{}})()};if("static"===s){let e,r;try{e=await measure(this.f,a)}catch(e){if(r=e,t)throw e}return{kind:s,args:this._args,alias:this._name,group:this._group,baseline:!!(this.flags&flags.baseline),runs:[{stats:e,error:r,args:{},name:this._name}],style:{highlight:this._highlight,compact:!!(this.flags&flags.compact)}}}{const r=new Array(e.length).fill(0),n=new Array(e.reduce(((t,e)=>t*this._args[e].length),1));for(let s=0;s<n.length;s++){{let o,i;const l={};let c=this._name;for(let t=0;t<e.length;t++)l[e[t]]=this._args[e[t]][r[t]];for(let t=0;t<e.length;t++)c=c.replaceAll(`$${e[t]}`,l[e[t]]);try{o=await measure(this.f,{...a,args:l})}catch(e){if(i=e,t)throw e}n[s]={stats:o,error:i,args:l,name:c}}let o=0;do{r[o]=(1+r[o])%this._args[e[o]].length}while(0===r[o++]&&o<e.length)}return{runs:n,kind:s,args:this._args,alias:this._name,group:this._group,baseline:!!(this.flags&flags.baseline),style:{highlight:this._highlight,compact:!!(this.flags&flags.compact)}}}}}export function boxplot(t){return _c(t,"x")}export function barplot(t){return _c(t,"b")}export function summary(t){return _c(t,"s")}export function lineplot(t){return _c(t,"l")}export function group(t,e){return"function"==typeof t&&(e=t,t=null),_c(e,"g",t)}export function bench(t,e){"function"==typeof t&&(t=(e=t).name||"anonymous");const s=COLLECTIONS[COLLECTIONS.length-1],a=new B(t,e);return a._group=s.id,s.trials.push(a),a}export function compact(t){const e=FLAGS;FLAGS|=flags.compact;const s=t();if(s instanceof Promise)return s.then((()=>{FLAGS=e}));FLAGS=e}const _c=(t,e,s=null)=>{const a=COLLECTIONS[COLLECTIONS.length-1];COLLECTIONS.push({trials:[],name:s??a.name,id:COLLECTIONS.length,types:[e,...a.types]});const r=t(),n={trials:[],name:a.name,types:a.types,id:COLLECTIONS.length};if(r instanceof Promise)return r.then((()=>{COLLECTIONS.push(n)}));COLLECTIONS.push(n)};function colors(){return globalThis.tjs?.env?.FORCE_COLOR||globalThis.process?.env?.FORCE_COLOR||!globalThis.Deno?.noColor&&!globalThis.tjs?.env?.NO_COLOR&&!globalThis.process?.env?.NO_COLOR&&!globalThis.process?.env?.NODE_DISABLE_COLORS}async function cpu(){if(globalThis.process?.versions?.webcontainer)return null;try{let t;if(t=require("os")?.cpus?.()?.[0]?.model)return t}catch{}try{let t;if(t=require("node:os")?.cpus?.()?.[0]?.model)return t}catch{}try{let t;if(t=globalThis.tjs?.system?.cpus?.[0]?.model)return t}catch{}try{let t;if(t=(await import("node:os"))?.cpus?.()?.[0]?.model)return t}catch{}return null}function version(){return{v8:()=>globalThis.version?.(),bun:()=>globalThis.Bun?.version,"txiki.js":()=>globalThis.tjs?.version,deno:()=>globalThis.Deno?.version?.deno,llrt:()=>globalThis.process?.versions?.llrt,node:()=>globalThis.process?.versions?.node,graaljs:()=>globalThis.Graal?.versionGraalVM,webcontainer:()=>globalThis.process?.versions?.webcontainer,"quickjs-ng":()=>globalThis.navigator?.userAgent?.split?.("/")[1],hermes:()=>globalThis.HermesInternal?.getRuntimeProperties?.()?.["OSS Release Version"]}[runtime()]?.()||null}function runtime(){return globalThis.d8?"v8":globalThis.tjs?"txiki.js":globalThis.Graal?"graaljs":globalThis.process?.versions?.llrt?"llrt":globalThis.process?.versions?.webcontainer?"webcontainer":globalThis.inIon&&globalThis.performance?.mozMemory?"spidermonkey":globalThis.window&&globalThis.netscape&&globalThis.InternalError?"firefox":globalThis.window&&globalThis.navigator&&Error.prepareStackTrace?"chromium":globalThis.navigator?.userAgent?.toLowerCase?.()?.includes?.("quickjs-ng")?"quickjs-ng":globalThis.$262&&globalThis.lockdown&&globalThis.AsyncDisposableStack?"XS Moddable":globalThis.$&&"IsHTMLDDA"in globalThis.$&&(new Error).stack.includes("runtime@")?"jsc":globalThis.window&&globalThis.navigator&&(new Error).stack.includes("runtime@")?"webkit":globalThis.os&&globalThis.std?"quickjs":globalThis.Bun?"bun":globalThis.Deno?"deno":globalThis.HermesInternal?"hermes":globalThis.window&&globalThis.navigator?"browser":globalThis.process?"node":null}async function arch(){if("webcontainer"===runtime())return"js + wasm";try{let t;if(t=Deno?.build?.target)return t}catch{}try{const t=await import("node:os");return`${t.arch()}-${t.platform()}`}catch{}if(globalThis.process?.arch&&globalThis.process?.platform)return`${globalThis.process.arch}-${globalThis.process.platform}`;if("txiki.js"===runtime())return`${globalThis.tjs.system?.arch}-${globalThis.tjs.system?.platform}`;if("spidermonkey"===runtime()){try{const t=globalThis.getBuildConfiguration(),e=["osx","linux","android","windows"],s=["arm","x64","x86","wasi","arm64","mips32","mips64","loong64","riscv64"].find((e=>t[e])),a=e.find((e=>t[e]));if(s)return a?`${s}-${a}`:s}catch{}try{if(globalThis.isAvxPresent())return"x86_64"}catch{}}return null}function defaults(t){t.print??=grint,t.throw??=!1,t.filter??=/.*/,t.format??="mitata",t.colors??=colors(),t.observe??=t=>t}export async function run(t={}){defaults(t);const e=Date.now(),s=[],a=await measure((()=>{})),r=await measure((()=>{}),{batch_unroll:1}),n=await measure((()=>{}),{inner_gc:!0}),o=await measure((t=>{for(const e of t);})),i={now:e,arch:await arch(),version:version(),runtime:runtime(),cpu:{name:await cpu(),freq:1/r.avg},noop:{fn:a,iter:o,fn_gc:n}};if(!$counters&&i.arch?.includes?.("darwin")&&["bun","node","deno"].includes(i.runtime))try{if($counters=await import("@mitata/counters"),0!==process.getuid())throw $counters=!1,1}catch{}if(!$counters&&i.arch?.includes?.("linux")&&["bun","node","deno"].includes(i.runtime))try{$counters=await import("@mitata/counters")}catch(t){t?.message?.includes?.("PermissionDenied")&&($counters=!1)}const l=COLLECTIONS.map((t=>({name:t.name,types:t.types}))),c="string"==typeof t.format?t.format:Object.keys(t.format)[0];return await formats[c](i,{...t,format:t.format[c]},s,l),COLLECTIONS=[{name:0,types:[],trials:[]}],{layout:l,context:i,benchmarks:s}}const formats={async quiet(t,e,s){for(const t of COLLECTIONS)for(const a of t.trials)e.filter.test(a._name)&&s.push(e.observe(await a.run(e.throw)))},async json(t,e,s,a){const r=e.print,n=e.format?.debug??!0,o=e.format?.samples??!0;for(const t of COLLECTIONS)for(const a of t.trials)e.filter.test(a._name)&&s.push(e.observe(await a.run(e.throw)));r(JSON.stringify({layout:a,benchmarks:s,context:t},((t,e)=>n||"debug"!==t?o||"samples"!==t?e instanceof Error?{message:String(e.message),stack:e.stack}:e:null:""),0))},async markdown(t,e,s){let a=!0;const r=e.print;r(`clk: ~${t.cpu.freq.toFixed(2)} GHz`),r(`cpu: ${t.cpu.name}`),r(`runtime: ${t.runtime}${t.version?` ${t.version}`:""} (${t.arch})`),r("");for(const t of COLLECTIONS){const n=[];if(!t.trials.length)continue;for(const a of t.trials)if(e.filter.test(a._name)){let t=await a.run(e.throw);t=e.observe(t),n.push(t),s.push(t)}if(!n.length)continue;a||r("");const o=n.reduce(((t,e)=>Math.max(t,e.runs.reduce(((t,e)=>Math.max(t,e.name.length)),0))),0);r(`| ${(t.name?`• ${t.name}`:a?"benchmark":"").padEnd(o)} | ${"avg".padStart(16)} | ${"min".padStart(11)} | ${"p75".padStart(11)} | ${"p99".padStart(11)} | ${"max".padStart(11)} |`),r(`| ${"-".repeat(o)} | ${"-".repeat(16)} | ${"-".repeat(11)} | ${"-".repeat(11)} | ${"-".repeat(11)} | ${"-".repeat(11)} |`),a=!1;for(const t of n)for(const e of t.runs)e.error?r(`| ${e.name.padEnd(o)} | error: ${e.error.message??e.error} |`):r(`| ${e.name.padEnd(o)} | \`${`${$.time(e.stats.avg)}/iter`.padStart(14)}\` | \`${$.time(e.stats.min).padStart(9)}\` | \`${$.time(e.stats.p75).padStart(9)}\` | \`${$.time(e.stats.p99).padStart(9)}\` | \`${$.time(e.stats.max).padStart(9)}\` |`)}},async mitata(t,e,s){const a=e.print;let r=e.format?.name??"longest";if("fixed"===r)r=28;else if("longest"===r){r=28;for(const t of COLLECTIONS)for(const s of t.trials)if(e.filter.test(s._name))for(const t of s._names())r=Math.max(r,t.length)}r=Math.max(20,r),e.colors?a($.gray+`clk: ~${t.cpu.freq.toFixed(2)} GHz`+$.reset):a(`clk: ~${t.cpu.freq.toFixed(2)} GHz`),e.colors?a($.gray+`cpu: ${t.cpu.name}`+$.reset):a(`cpu: ${t.cpu.name}`),e.colors?a($.gray+`runtime: ${t.runtime}${t.version?` ${t.version}`:""} (${t.arch})`+$.reset):a(`runtime: ${t.runtime}${t.version?` ${t.version}`:""} (${t.arch})`),a(""),a(`${"benchmark".padEnd(r-1)} avg (min … max) p75 / p99    (min … top 1%)`),a("-".repeat(15+r)+" "+"-".repeat(31));let n=!0,o=!1;for(const i of COLLECTIONS){const l=[];let c=!1;if(!i.trials.length)continue;if(i.trials.some((t=>e.filter.test(t._name)))){n?(n=!1,i.name&&(a(`• ${i.name}`),e.colors?a($.gray+"-".repeat(15+r)+" "+"-".repeat(31)+$.reset):a("-".repeat(15+r)+" "+"-".repeat(31)))):(a(""),i.name&&a(`• ${i.name}`),e.colors?a($.gray+"-".repeat(15+r)+" "+"-".repeat(31)+$.reset):a("-".repeat(15+r)+" "+"-".repeat(31)));for(const n of i.trials)if(e.filter.test(n._name)){let i=await n.run(e.throw);i=e.observe(i),l.push([n,i]),s.push(i),-1===$.colors.indexOf(n._highlight)&&(n._highlight=null);const g=e.colors&&n._highlight?t=>$[n._highlight]+t+$.reset:t=>t;for(const s of i.runs)if(c&&a(""),s.error)e.colors?a(`${g($.str(s.name,r).padEnd(r))} ${$.red+"error:"+$.reset} ${s.error.message??s.error}`):a(`${g($.str(s.name,r).padEnd(r))} error: ${s.error.message??s.error}`);else{const i=n.flags&flags.compact,l="iter"===s.stats.kind?t.noop.iter:"inner"!==n._gc?t.noop.fn:t.noop.fn_gc,h=s.stats.avg<1.42*l.avg;if(o=o||h,i){let t="";c=!1;const n=$.time(s.stats.avg).padStart(9);t+=g($.str(s.name,r).padEnd(r))+" ",e.colors?t+=$.bold+$.yellow+n+$.reset+$.bold+"/iter"+$.reset:t+=n+"/iter";const o=$.time(s.stats.p75).padStart(9),i=$.time(s.stats.p99).padStart(9),l=$.histogram.bins(s.stats,11,.99),m=$.histogram.ascii(l,1,{colors:e.colors});t+=" ",e.colors?t+=$.gray+o+" "+i+$.reset+" "+m[0]:t+=o+" "+i+" "+m[0],h&&(e.colors?t+=$.red+" !"+$.reset:t+=" !"),a(t)}else{let n="";const o=$.time(s.stats.avg).padStart(9);n+=g($.str(s.name,r).padEnd(r))+" ";const i=$.time(s.stats.p75).padStart(9),l=$.histogram.bins(s.stats,21,.99),m=$.histogram.ascii(l,s.stats.gc&&s.stats.heap?2:s.stats.gc||s.stats.heap?3:2,{colors:e.colors});e.colors?n+=$.bold+$.yellow+o+$.reset+$.bold+"/iter"+$.reset+" "+$.gray+i+$.reset+" "+m[0]:n+=o+"/iter "+i+" "+m[0],h&&(e.colors?n+=$.red+" !"+$.reset:n+=" !"),a(n),n="";const u=$.time(s.stats.min),p=$.time(s.stats.max),d=$.time(s.stats.p99).padStart(9),f=18-(u.length+p.length);if(n+=" ".repeat(f+r-8),e.colors?n+=$.gray+"("+$.reset+$.cyan+u+$.reset+$.gray+" … "+$.reset+$.magenta+p+$.reset+$.gray+")"+$.reset:n+="("+u+" … "+p+")",n+=" ",e.colors?n+=$.gray+d+$.reset+" "+m[1]:n+=d+" "+m[1],a(n),s.stats.gc){n="",c=!0,n+=" ".repeat(r-10);const t=$.time(s.stats.gc.min).padStart(9),o=$.time(s.stats.gc.max).padStart(9);if(e.colors?n+=$.gray+"gc("+$.reset+$.blue+t+$.reset+$.gray+" … "+$.reset+$.blue+o+$.reset+$.gray+")"+$.reset:n+="gc("+t+" … "+o+")",s.stats.heap){n+=" ";const t=$.bytes(s.stats.heap.avg).padStart(9),a=$.bytes(s.stats.heap.min).padStart(9),r=$.bytes(s.stats.heap.max).padStart(9);e.colors?n+=$.yellow+t+$.reset+$.gray+" ("+$.reset+$.yellow+a+$.reset+$.gray+"…"+$.reset+$.yellow+r+$.reset+$.gray+")"+$.reset:n+=t+" ("+a+"…"+r+")"}else{n+=" ";const t=$.time(s.stats.gc.avg).padStart(9);e.colors?n+=$.blue+t+$.reset+" "+m[2]:n+=t+" "+m[2]}a(n)}else if(s.stats.heap){c=!0,n=" ".repeat(r-8);const t=$.bytes(s.stats.heap.avg).padStart(9),o=$.bytes(s.stats.heap.min).padStart(9),i=$.bytes(s.stats.heap.max).padStart(9);e.colors?n+=$.gray+"("+$.reset+$.yellow+o+$.reset+$.gray+" … "+$.reset+$.yellow+i+$.reset+$.gray+") "+$.reset+$.yellow+t+$.reset+" "+m[2]:n+="("+o+" … "+i+") "+t+" "+m[2],a(n)}if(s.stats.counters){if(n="",c=!0,t.arch.includes("linux")){const t=s.stats.counters._bmispred.avg,o=s.stats.counters.instructions.avg/s.stats.counters.cycles.avg,i=100-Math.min(100,100*s.stats.counters.cache.misses.avg/s.stats.counters.cache.avg);n+=" ".repeat(r-12),e.colors?n+=$.bold+$.green+$.amount(o).padStart(7)+$.reset+$.bold+" ipc"+$.reset:n+=$.amount(o).padStart(7)+" ipc",e.colors?n+=$.gray+" ("+$.reset+(50>i?$.red:84<i?$.green:$.yellow)+i.toFixed(2).padStart(6)+"%"+$.reset+" cache"+$.gray+")"+$.reset:n+=" ("+i.toFixed(2).padStart(6)+"% cache)",e.colors?n+=" "+$.green+$.amount(t).padStart(7)+$.reset+" branch misses":n+=" "+$.amount(t).padStart(7)+" branch misses",a(n),n="",n+=" ".repeat(r-20),e.colors&&(n+=$.gray),n+=$.amount(s.stats.counters.cycles.avg).padStart(7)+" cycles",n+=" "+$.amount(s.stats.counters.instructions.avg).padStart(7)+" instructions",n+=" "+$.amount(s.stats.counters.cache.avg).padStart(7)+" c-refs",n+=" "+$.amount(s.stats.counters.cache.misses.avg).padStart(7)+" c-misses",e.colors&&(n+=$.reset),a(n)}if(t.arch.includes("darwin")){const t=s.stats.counters.instructions.avg/s.stats.counters.cycles.avg,o=100*s.stats.counters.cycles.stalls.avg/s.stats.counters.cycles.avg,i=100*s.stats.counters.instructions.loads_and_stores.avg/s.stats.counters.instructions.avg,l=100-Math.min(100,100*(s.stats.counters.l1.miss_loads.avg+s.stats.counters.l1.miss_stores.avg)/s.stats.counters.instructions.loads_and_stores.avg);n+=" ".repeat(r-13),e.colors?n+=$.bold+$.green+$.amount(t).padStart(7)+$.reset+$.bold+" ipc"+$.reset:n+=$.amount(t).padStart(7)+" ipc",e.colors?n+=$.gray+" ("+$.reset+(12>o?$.green:50<o?$.red:$.yellow)+o.toFixed(2).padStart(6)+"%"+$.reset+" stalls"+$.gray+")"+$.reset:n+=" ("+o.toFixed(2).padStart(6)+"% stalls)",e.colors?n+=" "+(50>l?$.red:84<l?$.green:$.yellow)+l.toFixed(2).padStart(6)+"%"+$.reset+" L1 data cache":n+=" "+l.toFixed(2).padStart(6)+"% L1 data cache",a(n),n="",n+=" ".repeat(r-20),e.colors&&(n+=$.gray),n+=$.amount(s.stats.counters.cycles.avg).padStart(7)+" cycles",n+=" "+$.amount(s.stats.counters.instructions.avg).padStart(7)+" instructions",n+=" "+i.toFixed(2).padStart(6)+"% retired LD/ST ("+$.amount(s.stats.counters.instructions.loads_and_stores.avg).padStart(7)+")",e.colors&&(n+=$.reset),a(n)}}}}}if(i.types.includes("b")){const t={},s={};for(const[e,a]of l)for(const r of a.runs)r.error||(t[r.name]=r.stats.avg,s[r.name]=$[e._highlight]);Object.keys(t).length&&(a(""),$.barplot.ascii(t,r,44,{steps:-10,colors:e.colors?s:null}).forEach((t=>a(t))))}if(i.types.includes("x")){const t={},s={};if(1===l.length)for(const[e,a]of l)for(const r of a.runs)t[r.name]=r.stats,s[r.name]=$[e._highlight];else for(const[e,a]of l){const r=a.runs.filter((t=>t.stats));if(r.length)if(1===r.length)t[r[0].name]=r[0].stats,s[r[0].name]=$[e._highlight];else{const n={avg:0,min:1/0,p25:1/0,p75:-1/0,p99:-1/0};for(const t of r)n.avg+=t.stats.avg,n.min=Math.min(n.min,t.stats.min),n.p25=Math.min(n.p25,t.stats.p25),n.p75=Math.max(n.p75,t.stats.p75),n.p99=Math.max(n.p99,t.stats.p99);t[a.alias]=n,n.avg/=r.length,s[a.alias]=$[e._highlight]}}Object.keys(t).length&&(a(""),$.boxplot.ascii(t,r,44,{colors:e.colors?s:null}).forEach((t=>a(t))))}if(i.types.includes("l")){const t={},s={},n={},o={};if(1===l.length)for(const[a,r]of l){const i=r.runs.filter((t=>t.stats));if(i.length)if(1===i.length){const{min:r,max:l,avg:c,peak:g,bins:h}=$.histogram.bins(i[0].stats,44,.99);s.ymax=g,n.xmin=$.cyan,n.xmax=$.magenta,s.ymin=$.min(h),o.xmin=$.time(r),o.xmax=$.time(l),s.xmax=h.length-1,n[i[0].name]=$[a._highlight]||$.bold,t[i[0].name]={y:h,x:h.map(((t,e)=>e)),format:(t,s,a)=>(t=Math.round(44*t),e.colors?t===c?$.yellow+a+$.reset:(t<c?$.cyan:$.magenta)+a+$.reset:a)}}else{const e=i.map((t=>t.stats.avg));n.ymin=$.cyan,n.ymax=$.magenta,s.ymin=$.min(e),s.ymax=$.max(e),s.xmax=i.length-1,o.ymin=$.time(s.ymin),o.ymax=$.time(s.ymax),n[r.alias]=$[a._highlight],t[r.alias]={y:e,x:e.map(((t,e)=>e))}}}else if(l.every((([t,e])=>"static"===e.kind))){n.xmin=$.cyan,n.xmax=$.magenta;for(const[e,a]of l)for(const r of a.runs){if(r.error)continue;const{bins:a,peak:i,steps:l}=$.histogram.bins(r.stats,44,.99),c=a.map((t=>t/i));t[r.name]={y:c,x:l},n[r.name]=$[e._highlight],s.ymin=Math.min($.min(c),s.ymin??1/0),s.ymax=Math.max($.max(c),s.ymax??-1/0),s.xmin=Math.min($.min(l),s.xmin??1/0),s.xmax=Math.max($.max(l),s.xmax??-1/0),o.xmin=$.time(s.xmin),o.xmax=$.time(s.xmax)}}else{let e=1/0,a=-1/0;for(const[t,s]of l)for(const t of s.runs)t.error||(e=Math.min(e,t.stats.avg),a=Math.max(a,t.stats.avg));n.ymin=$.cyan,n.ymax=$.magenta,o.ymin=$.time(e),o.ymax=$.time(a);for(const[e,r]of l){const o=r.runs.filter((t=>t.stats));if(o.length)if(1===o.length){const r=o[0].stats.avg/a;n[o[0].name]=$[e._highlight],t[o[0].name]={x:[0,1],y:[r,r]},s.ymin=Math.min(r,s.ymin??1/0),s.ymax=Math.max(r,s.ymax??-1/0)}else{n[r.alias]=$[e._highlight];const i=o.map((t=>t.stats.avg/a));s.ymin=Math.min($.min(i),s.ymin??1/0),s.ymax=Math.max($.max(i),s.ymax??-1/0),t[r.alias]={y:i,x:o.map(((t,e)=>e/(o.length-1)))}}}}Object.keys(t).length&&(a(""),$.lineplot.ascii(t,{labels:o,...s,width:44,height:16,key:r,colors:e.colors?n:null}).forEach((t=>a(t))))}if(i.types.includes("s"))if(l.sort(((t,e)=>{const s=t[1].runs.filter((t=>t.stats)),a=e[1].runs.filter((t=>t.stats));if(0===s.length)return 1;if(0===a.length)return-1;const r=s.reduce(((t,e)=>t+e.stats.avg),0)/s.length,n=a.reduce(((t,e)=>t+e.stats.avg),0)/a.length;return r-n})),1===l.length){const t=l[0][1].runs.filter((t=>t.stats)).sort(((t,e)=>t.stats.avg-e.stats.avg));if(1<t.length){a(""),e.colors?a($.bold+"summary"+$.reset):a("summary"),e.colors?a(" ".repeat(2)+$.bold+$.cyan+t[0].name+$.reset):a("  "+t[0].name);for(let s=1;s<t.length;s++){const r=t[s],n=t[0],o=r.stats.avg>=n.stats.avg,i=Number(o?(1/n.stats.avg*r.stats.avg).toFixed(2):(1/r.stats.avg*n.stats.avg).toFixed(2));e.colors?a(" ".repeat(3)+(o?$.green:$.red)+i+$.reset+`x ${o?"faster":"slower"} than ${$.bold+$.cyan+r.name+$.reset}`):a(" ".repeat(3)+i+`x ${o?"faster":"slower"} than ${r.name}`)}}}else{let t=!1;const s=l.find((([t,e])=>e.baseline&&e.runs.some((t=>t.stats))))?.[1]||l[0][1];if(s){const r=s.runs.filter((t=>!t.error)).sort(((t,e)=>t.stats.avg-e.stats.avg));for(const[n,o]of l){if(o===s)continue;const n=o.runs.filter((t=>!t.error)).sort(((t,e)=>t.stats.avg-e.stats.avg));if(n.length)if(t||(a(""),t=!0,e.colors?a($.bold+"summary"+$.reset):a("summary"),1!==r.length?e.colors?a(" ".repeat(2)+$.bold+$.cyan+s.alias+$.reset):a("  "+s.alias):e.colors?a(" ".repeat(2)+$.bold+$.cyan+r[0].name+$.reset):a("  "+r[0].name)),1===n.length&&1===r.length){const t=n[0],s=r[0],o=t.stats.avg>=s.stats.avg,i=Number(o?(1/s.stats.avg*t.stats.avg).toFixed(2):(1/t.stats.avg*s.stats.avg).toFixed(2));e.colors?a(" ".repeat(3)+(o?$.green:$.red)+i+$.reset+`x ${o?"faster":"slower"} than ${$.bold+$.cyan+t.name+$.reset}`):a(" ".repeat(3)+i+`x ${o?"faster":"slower"} than ${t.name}`)}else{const t=n[0],s=r[0],i=n[n.length-1],l=r[r.length-1],c=n.reduce(((t,e)=>t+e.stats.avg),0)/n.length>=r.reduce(((t,e)=>t+e.stats.avg),0)/r.length,g=i.stats.avg>=l.stats.avg,h=t.stats.avg>=s.stats.avg,m=Number(g?(1/l.stats.avg*i.stats.avg).toFixed(2):(1/i.stats.avg*l.stats.avg).toFixed(2)),u=Number(h?(1/s.stats.avg*t.stats.avg).toFixed(2):(1/t.stats.avg*s.stats.avg).toFixed(2));e.colors?a(" ".repeat(3)+(1===m?$.gray+m+$.reset:g?$.green+"+"+m+$.reset:$.red+"-"+m+$.reset)+"…"+(1===u?$.gray+u+$.reset:h?$.green+"+"+u+$.reset:$.red+"-"+u+$.reset)+`x ${c?"faster":"slower"} than ${$.bold+$.cyan+(1===n.length?t.name:o.alias)+$.reset}`):a(" ".repeat(3)+(1===m?m:(g?"+":"-")+m)+"…"+(1===u?u:(h?"+":"-")+u)+`x ${c?"faster":"slower"} than ${1===n.length?t.name:o.alias}`)}}}}}}let i=!1;!1===$counters&&(e.colors?(a(""),i=!0,a($.yellow+"!"+$.reset+$.gray+" = "+$.reset+"run with sudo to enable hardware counters")):(a(""),i=!0,a("! = run with sudo to enable hardware counters"))),o&&(e.colors?(i||a(""),a(" ".repeat(r-13)+"benchmark was likely optimized out "+$.gray+"(dead code elimination)"+$.reset+$.gray+" = "+$.reset+$.red+"!"+$.reset),a(" ".repeat(r-13)+$.gray+"https://github.com/evanwashere/mitata#writing-good-benchmarks"+$.reset)):(i||a(""),a(" ".repeat(r-13)+"benchmark was likely optimized out (dead code elimination) = !"),a(" ".repeat(r-13)+"https://github.com/evanwashere/mitata#writing-good-benchmarks")))}};export const $={bold:"[1m",reset:"[0m",red:"[31m",cyan:"[36m",blue:"[34m",gray:"[90m",white:"[37m",black:"[30m",green:"[32m",yellow:"[33m",magenta:"[35m",colors:["red","cyan","blue","green","yellow","magenta","gray","white","black"],clamp:(t,e,s)=>e<t?t:e>s?s:e,min:(t,e=1/0)=>t.reduce(((t,e)=>Math.min(t,e)),e),max:(t,e=-1/0)=>t.reduce(((t,e)=>Math.max(t,e)),e),str:(t,e=3)=>e>=t.length?t:`${t.slice(0,e-2)}..`,amount:t=>Number.isNaN(t)?"NaN":t<1e3?t.toFixed(2):(t/=1e3)<1e3?`${t.toFixed(2)}k`:(t/=1e3)<1e3?`${t.toFixed(2)}M`:(t/=1e3)<1e3?`${t.toFixed(2)}G`:(t/=1e3)<1e3?`${t.toFixed(2)}T`:`${(t/=1e3).toFixed(2)}P`,bytes:(t,e=!0)=>Number.isNaN(t)?"NaN":t<1e3?`${t.toFixed(2)} ${e?" ":""}b`:(t/=1024)<1e3?`${t.toFixed(2)} kb`:(t/=1024)<1e3?`${t.toFixed(2)} mb`:(t/=1024)<1e3?`${t.toFixed(2)} gb`:(t/=1024)<1e3?`${t.toFixed(2)} tb`:`${(t/=1024).toFixed(2)} pb`,time:t=>t<1?`${(1e3*t).toFixed(2)} ps`:t<1e3?`${t.toFixed(2)} ns`:(t/=1e3)<1e3?`${t.toFixed(2)} µs`:(t/=1e3)<1e3?`${t.toFixed(2)} ms`:(t/=1e3)<1e3?`${t.toFixed(2)} s`:(t/=60)<1e3?`${t.toFixed(2)} m`:`${(t/=60).toFixed(2)} h`,barplot:{symbols:{bar:"■",legend:"┤",tl:"┌",tr:"┐",bl:"└",br:"┘"},ascii(t,e=8,s=14,{steps:a=0,fmt:r=$.time,colors:n=!0,symbols:o=$.barplot.symbols}={}){const i=Object.values(t),l=new Array(2+i.length).fill("");a+=s;const c=$.min(i),g=($.max(i)-c)/a;return l[0]+=" ".repeat(1+e),l[0]+=o.tl+" ".repeat(s)+o.tr,Object.keys(t).forEach(((s,a)=>{const i=t[s],h=Math.round((i-c)/g);n?.[s]&&(l[a+1]+=n[s]),l[a+1]+=$.str(s,e).padStart(e),n?.[s]&&(l[a+1]+=$.reset),l[a+1]+=" "+o.legend,n&&(l[a+1]+=$.gray),l[a+1]+=o.bar.repeat(h),n&&(l[a+1]+=$.reset),l[a+1]+=" ",n&&(l[a+1]+=$.yellow),l[a+1]+=r(i),n&&(l[a+1]+=$.reset)})),l[l.length-1]+=" ".repeat(1+e),l[l.length-1]+=o.bl+" ".repeat(s)+o.br,l}},canvas:{braille(t,e){const s=2*t,a=4*e,r=new Uint8Array(s*a),n=[10241,10242,10244,10304,10248,10256,10272,10368];return{buffer:r,width:t,height:e,vwidth:s,vheight:a,set(t,e,a=1){r[t+e*s]=a},line(t,e,a=1){t.x=Math.round(t.x),t.y=Math.round(t.y),e.x=Math.round(e.x),e.y=Math.round(e.y);const n=Math.abs(e.x-t.x),o=Math.abs(e.y-t.y);let i=n-o,l=t.x,c=t.y;const g=t.x<e.x?1:-1,h=t.y<e.y?1:-1;for(;r[l+c*s]=a,l!==e.x||c!==e.y;){const t=2*i;t<n&&(c+=h,i+=n),t>-o&&(l+=g,i-=o)}},toString({background:t=!1,format:o=(t,e,s,a,r)=>s}={}){const i=new Array(e).fill("");for(let e=0;e<a;e+=4){const l=e*s,c=l+s,g=c+s,h=g+s;for(let m=0;m<s;m+=2){let u=10240;r[m+l]&&(u|=n[0]),r[1+m+l]&&(u|=n[4]),r[m+c]&&(u|=n[1]),r[1+m+c]&&(u|=n[5]),r[m+g]&&(u|=n[2]),r[1+m+g]&&(u|=n[6]),r[m+h]&&(u|=n[3]),r[1+m+h]&&(u|=n[7]),i[e/4]+=10240!==u||t?o(m/(s-1),e/(a-1),String.fromCharCode(u),r[m+l]||r[1+m+l]||r[m+c]||r[1+m+c]||r[m+g]||r[1+m+g]||r[m+h]||r[1+m+h],10240===u):" "}}return i}}}},lineplot:{symbols:{tl:"┌",tr:"┐",bl:"└",br:"┘"},ascii(t,{colors:e=!0,xmin:s=0,xmax:a=1,ymin:r=0,ymax:n=1,symbols:o=$.lineplot.symbols,key:i=8,width:l=12,height:c=12,labels:g={xmin:null,xmax:null,ymin:null,ymax:null}}={}){const h=Object.keys(t),m=$.canvas.braille(l,c),u=(m.vwidth-1)/(a-s),p=(m.vheight-1)/(n-r),d=Object.entries(e).filter((([t])=>!Object.keys(g).includes(t))).map((([t,e])=>e)),f=$.colors.filter((t=>!d.includes($[t])));h.forEach(((e,a)=>{const{x:n,y:o}=t[e];for(let t=0;t<n.length-1;t++){if(null==n[t]||null==n[t+1])continue;if(null==o[t]||null==o[t+1])continue;const e={x:Math.round(u*(n[t]-s)),y:m.vheight-1-Math.round(p*(o[t]-r))},i={x:Math.round(u*(n[t+1]-s)),y:m.vheight-1-Math.round(p*(o[t+1]-r))};m.line(e,i,1+a)}}));const y=new Array(2+m.height).fill("");y[0]+=" ".repeat(1+i),y[0]+=o.tl+" ".repeat(l)+o.tr;const b=m.toString({format(s,a,r,n){const o=h[n-1];return t[o].format?t[o].format(s,a,r):e?.[o]?e[o]+r+$.reset:$[f[(n-1)%f.length]]+r+$.reset}}),x={0:e?.ymax?e.ymax+(g.ymax||"")+$.reset:g.ymax||"",[b.length-1]:e?.ymin?e.ymin+(g.ymin||"")+$.reset:g.ymin||""},v=h.map(((t,s)=>e?.[t]?e[t]+$.str(t,i).padStart(i)+$.reset:$[f[s%f.length]]+$.str(t,i).padStart(i)+$.reset));if(b.forEach(((t,e)=>{y[e+1]+=v[e]??" ".repeat(i),y[e+1]+=" ".repeat(2)+t+(x[e]?" "+x[e]:"")})),y[y.length-1]+=" ".repeat(1+i),y[y.length-1]+=o.bl+" ".repeat(l)+o.br,g.xmin||g.xmax){const t=g.xmin||"",s=g.xmax||"",a=2+l-t.length;y.push(" ".repeat(i)+" "+(e?.xmin?e.xmin+t+$.reset:t)+(e?.xmax?e.xmax+s.padStart(a)+$.reset:s.padStart(a)))}return y}},histogram:{symbols:["▁","▂","▃","▄","▅","▆","▇","█"],bins(t,e=6,s=1){const a=s*(t.samples.length-1)|0;let r=t.min;const n=t.samples[a]||t.max||1,o=new Array(e),i=new Array(e).fill(0),l=(n-r)/(e-1);if(0===l){r=0;for(let t=0;t<e;t++)o[t]=t*l;i[$.clamp(0,Math.round((t.avg-r)/l),e-1)]=1}else{for(let t=0;t<e;t++)o[t]=r+t*l;for(let e=0;e<=a;e++)i[Math.round((t.samples[e]-r)/l)]++}return{min:r,max:n,step:l,bins:i,steps:o,peak:$.max(i),outliers:t.samples.length-1-a,avg:$.clamp(0,Math.round((t.avg-r)/l),e-1)}},ascii(t,e=1,{colors:s=!0,symbols:a=$.histogram.symbols}={}){const r=new Array(e),{avg:n,peak:o,bins:i}=t,l=(e*a.length-1)/o;for(let t=0;t<e;t++){let e="";if(0!==n){s&&(e+=$.cyan);for(let s=0;s<n;s++){const r=i[s];if(0===t)e+=a[$.clamp(0,Math.round(r*l),a.length-1)];else{const s=t*a.length,n=(t+1)*a.length,o=0|Math.round(r*l);e+=s>=o?" ":n<=o?a[a.length-1]:a[$.clamp(s,o,n)%a.length]}}s&&(e+=$.reset)}{s&&(e+=$.yellow);const r=i[n];if(0===t)e+=a[$.clamp(0,Math.round(r*l),a.length-1)];else{const s=t*a.length,n=(t+1)*a.length,o=0|Math.round(r*l);e+=s>=o?" ":n<=o?a[a.length-1]:a[$.clamp(s,o,n)%a.length]}s&&(e+=$.reset)}if(n!=i.length-1){s&&(e+=$.magenta);for(let s=1+n;s<i.length;s++){const r=i[s];if(0===t)e+=a[$.clamp(0,Math.round(r*l),a.length-1)];else{const s=t*a.length,n=(t+1)*a.length,o=0|Math.round(r*l);e+=s>=o?" ":n<=o?a[a.length-1]:a[$.clamp(s,o,n)%a.length]}}s&&(e+=$.reset)}r[t]=e}return r.reverse()}},boxplot:{symbols:{v:"│",h:"─",tl:"┌",tr:"┐",bl:"└",br:"┘",avg:{top:"┬",middle:"│",bottom:"┴"},tail:{top:"╷",bottom:"╵",middle:["├","┤"]}},ascii(t,e=8,s=14,{fmt:a=$.time,colors:r=!0,symbols:n=$.boxplot.symbols}={}){let o=1/0,i=-1/0;const l=Object.keys(t),c=new Array(3+3*l.length).fill("");for(const e of l){const s=t[e];o>s.min&&(o=s.min);const a=s.p99||s.max||1;a>i&&(i=a)}const g=2+s,h=(i-o)/(g-1);c[0]+=" ".repeat(1+e),c[0]+=n.tl+" ".repeat(s)+n.tr,l.forEach(((s,a)=>{a*=3;const i=t[s],l=i.min,m=i.avg,u=i.p25,p=i.p75,d=i.p99||i.max||1,f=1+Math.min(g-1,Math.round((l-o)/h)),y=1+Math.min(g-1,Math.round((d-o)/h)),b=1+Math.min(g-1,Math.round((m-o)/h)),x=1+Math.min(g-1,Math.round((u-o)/h)),v=1+Math.min(g-1,Math.round((p-o)/h)),w=new Array(2+g).fill(" "),_=new Array(2+g).fill(" "),S=new Array(2+g).fill(" ");if(w[0]=r?$.cyan:"",_[0]=r?$.cyan:"",S[0]=r?$.cyan:"",f<x){w[f]=n.tail.top,S[f]=n.tail.bottom,_[f]=n.tail.middle[0];for(let t=1+f;t<x;t++)_[t]=n.h}if(b>x){w[x]=n.tl,S[x]=n.bl,_[x]=f===x?n.v:n.tail.middle[1];for(let t=1+x;t<b;t++)w[t]=S[t]=n.h}if(w[b]=r?$.reset+$.yellow+n.avg.top+$.reset+$.magenta:n.avg.top,S[b]=r?$.reset+$.yellow+n.avg.bottom+$.reset+$.magenta:n.avg.bottom,_[b]=r?$.reset+$.yellow+n.avg.middle+$.reset+$.magenta:n.avg.middle,b<v){w[v]=n.tr,S[v]=n.br,_[v]=y===v?n.v:n.tail.middle[0];for(let t=1+b;t<v;t++)w[t]=S[t]=n.h}if(y>v){w[y]=n.tail.top,S[y]=n.tail.bottom,_[y]=n.tail.middle[1];for(let t=1+Math.max(b,v);t<y;t++)_[t]=n.h}c[a+1]=" ".repeat(1+e)+w.join("").trimEnd()+(r?$.reset:""),r?.[s]&&(c[a+2]+=r[s]),c[a+2]+=$.str(s,e).padStart(e),r?.[s]&&(c[a+2]+=$.reset),c[a+2]+=" "+_.join("").trimEnd()+(r?$.reset:""),c[a+3]=" ".repeat(1+e)+S.join("").trimEnd()+(r?$.reset:"")})),c[c.length-2]+=" ".repeat(1+e),c[c.length-2]+=n.bl+" ".repeat(s)+n.br;const m=a(o),u=a(i),p=a((o+i)/2),d=(s-m.length-p.length-u.length)/2;return c[c.length-1]+=" ".repeat(1+e),c[c.length-1]+=r?$.cyan+m+$.reset:m,c[c.length-1]+=" ".repeat(1+d|0),c[c.length-1]+=r?$.gray+p+$.reset:p,c[c.length-1]+=" ".repeat(1+Math.ceil(d)),c[c.length-1]+=r?$.magenta+u+$.reset:u,c}}};
//# sourceMappingURL=/sm/9a577451dc83f948268e3dc7f49716e12c4d4cac8fa83d24caf29a4caf53c299.map