|
@@ -42,11 +42,11 @@ const scaleOptions = {
|
|
};
|
|
};
|
|
|
|
|
|
const scaleOptionsDisplay = {
|
|
const scaleOptionsDisplay = {
|
|
- none: () => ["", ""],
|
|
|
|
- direct: arg => [`\\frac{\\left|${arg}\\right|}{\\left|P\\right|} \\left(`, "\\right)"],
|
|
|
|
- inverse: arg => [`\\frac{\\left|P\\right|}{\\left|${arg}\\right|} \\left(`, "\\right)"],
|
|
|
|
- size: () => ["\\left|P\\right| \\left(", "\\right)"],
|
|
|
|
- inverseSize: () => ["\\frac{1}{\\left|P\\right|} \\left(", "\\right)"],
|
|
|
|
|
|
+ none: () => ["", "", ""],
|
|
|
|
+ direct: arg => [`\\frac{\\left|${arg}\\right|}{\\left|P\\right|}`, "\\left(", "\\right)"],
|
|
|
|
+ inverse: arg => [`\\frac{\\left|P\\right|}{\\left|${arg}\\right|}`, "\\left(", "\\right)"],
|
|
|
|
+ size: () => ["\\left|P\\right|", "\\left(", "\\right)"],
|
|
|
|
+ inverseSize: () => ["\\frac{1}{\\left|P\\right|}", "\\left(", "\\right)"],
|
|
}
|
|
}
|
|
|
|
|
|
const sortOrders = {
|
|
const sortOrders = {
|
|
@@ -61,32 +61,37 @@ const onControlsChanged = state => {
|
|
= \left(\text{${state.target[state.space].vector.map(c => c.toFixed(state.space === "rgb" ? 0 : 2)).join(", ")}}\right)
|
|
= \left(\text{${state.target[state.space].vector.map(c => c.toFixed(state.space === "rgb" ? 0 : 2)).join(", ")}}\right)
|
|
`);
|
|
`);
|
|
// Update metric displays
|
|
// Update metric displays
|
|
|
|
+ document.getElementById("collapsed-sort").innerHTML = state.sortOrder === "min" ? "<" : ">";
|
|
document.getElementById("collapsed-fn-name").innerHTML = TeXZilla.toMathMLString(metrics[state.sortMetric].displayName);
|
|
document.getElementById("collapsed-fn-name").innerHTML = TeXZilla.toMathMLString(metrics[state.sortMetric].displayName);
|
|
|
|
+ document.getElementById("collapsed-cluster-sort").innerHTML = state.useCluster ? state.clusterSettings.sortOrder === "min" ? "<" : ">" : "";
|
|
|
|
+ document.getElementById("collapsed-cluster").innerHTML = state.useCluster ? TeXZilla.toMathMLString(metrics[state.clusterSettings.sortMetric].displayName) : "";
|
|
|
|
+ document.getElementById("collapsed-cluster-scale").innerHTML = state.useCluster ? TeXZilla.toMathMLString(scaleOptionsDisplay[state.clusterSettings.scaleOption]("X")[0] || "1") : "";
|
|
|
|
+ document.getElementById("collapsed-scale").innerHTML = state.useCluster ? TeXZilla.toMathMLString(scaleOptionsDisplay[state.scaleOption]("X")[0] || "1") : "";
|
|
document.getElementById("metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
document.getElementById("metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
${metrics[state.sortMetric].displayName}\\left(P\\right) = ${metrics[state.sortMetric].displayBody("P", state.space)}
|
|
${metrics[state.sortMetric].displayName}\\left(P\\right) = ${metrics[state.sortMetric].displayBody("P", state.space)}
|
|
`);
|
|
`);
|
|
let arg;
|
|
let arg;
|
|
if (state.useCluster) {
|
|
if (state.useCluster) {
|
|
arg = "K\\left(P\\right)";
|
|
arg = "K\\left(P\\right)";
|
|
- const [ clusterScaleDisplayL, clusterScaleDisplayR ] = scaleOptionsDisplay[state.clusterSettings.scaleOption]("P_i");
|
|
|
|
|
|
+ const [ clusterScaleDisplay, clusterScaleDisplayL, clusterScaleDisplayR ] = scaleOptionsDisplay[state.clusterSettings.scaleOption]("P_i");
|
|
document.getElementById("cluster-metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
document.getElementById("cluster-metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
K\\left(P\\right) = \\arg\\${state.clusterSettings.sortOrder}_{P_i}\\left[
|
|
K\\left(P\\right) = \\arg\\${state.clusterSettings.sortOrder}_{P_i}\\left[
|
|
- ${clusterScaleDisplayL} ${metrics[state.clusterSettings.sortMetric].displayBody("P_i", state.space)} ${clusterScaleDisplayR}
|
|
|
|
|
|
+ ${clusterScaleDisplay} ${clusterScaleDisplayL} ${metrics[state.clusterSettings.sortMetric].displayBody("P_i", state.space)} ${clusterScaleDisplayR}
|
|
\\right]
|
|
\\right]
|
|
`);
|
|
`);
|
|
} else {
|
|
} else {
|
|
arg = "P";
|
|
arg = "P";
|
|
document.getElementById("cluster-metric-display").innerHTML = '';
|
|
document.getElementById("cluster-metric-display").innerHTML = '';
|
|
}
|
|
}
|
|
- const [ scaleDisplayL, scaleDisplayR ] = state.useCluster ? scaleOptionsDisplay[state.scaleOption](arg) : ["", ""];
|
|
|
|
|
|
+ const [ scaleDisplay, scaleDisplayL, scaleDisplayR ] = state.useCluster ? scaleOptionsDisplay[state.scaleOption](arg) : ["", ""];
|
|
document.getElementById("final-metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
document.getElementById("final-metric-display").innerHTML = TeXZilla.toMathMLString(`
|
|
\\begin{aligned}
|
|
\\begin{aligned}
|
|
&\\${state.sortOrder}_{P}\\left[
|
|
&\\${state.sortOrder}_{P}\\left[
|
|
- ${scaleDisplayL.slice(0, -6)} ${metrics[state.sortMetric].displayName}\\left(${arg}\\right)
|
|
|
|
|
|
+ ${scaleDisplay} ${metrics[state.sortMetric].displayName}\\left(${arg}\\right)
|
|
\\right]\\\\
|
|
\\right]\\\\
|
|
=
|
|
=
|
|
&\\${state.sortOrder}_{P}\\left[
|
|
&\\${state.sortOrder}_{P}\\left[
|
|
- ${scaleDisplayL} ${metrics[state.sortMetric].displayBody(arg, state.space)} ${scaleDisplayR}
|
|
|
|
|
|
+ ${scaleDisplay} ${scaleDisplayL} ${metrics[state.sortMetric].displayBody(arg, state.space)} ${scaleDisplayR}
|
|
\\right]
|
|
\\right]
|
|
\\end{aligned}
|
|
\\end{aligned}
|
|
`);
|
|
`);
|