|
@@ -8,7 +8,7 @@ const metrics = {
|
|
evaluate: (data, target) => Math.sqrt(data.inertia - 2 * vectorDot(data.mu.vector, target.vector) + target.sqMag),
|
|
evaluate: (data, target) => Math.sqrt(data.inertia - 2 * vectorDot(data.mu.vector, target.vector) + target.sqMag),
|
|
},
|
|
},
|
|
bigTheta: { // mean of angle
|
|
bigTheta: { // mean of angle
|
|
- option: "Mean of Angular Difference (Θ)",
|
|
|
|
|
|
+ option: "Angular Difference (Θ)",
|
|
displayName: p => String.raw`\Theta\left(${p}\right)`,
|
|
displayName: p => String.raw`\Theta\left(${p}\right)`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\cos^{-1}\left( \hat{q}\cdot\vec{\nu}\left(${p}\right) \right)
|
|
\cos^{-1}\left( \hat{q}\cdot\vec{\nu}\left(${p}\right) \right)
|
|
@@ -16,7 +16,7 @@ const metrics = {
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.nu, target.unit)),
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.nu, target.unit)),
|
|
},
|
|
},
|
|
theta: { // angle of mean
|
|
theta: { // angle of mean
|
|
- option: "Angular Difference of Mean (θ)",
|
|
|
|
|
|
+ option: "Angular Difference (θ)",
|
|
displayName: p => String.raw`\theta\left(${p}\right)`,
|
|
displayName: p => String.raw`\theta\left(${p}\right)`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\cos^{-1}\left( \hat{q}\cdot\hat{\mu}\left(${p}\right) \right)
|
|
\cos^{-1}\left( \hat{q}\cdot\hat{\mu}\left(${p}\right) \right)
|
|
@@ -24,7 +24,7 @@ const metrics = {
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.mu.unit, target.unit)),
|
|
evaluate: (data, target) => rad2deg * Math.acos(vectorDot(data.mu.unit, target.unit)),
|
|
},
|
|
},
|
|
phi: { // hue angle
|
|
phi: { // hue angle
|
|
- option: "Hue Difference of Mean (ϕ)",
|
|
|
|
|
|
+ option: "Hue Difference (ϕ)",
|
|
displayName: p => String.raw`\phi\left(${p}\right)`,
|
|
displayName: p => String.raw`\phi\left(${p}\right)`,
|
|
displayBody: (p, space) => String.raw`
|
|
displayBody: (p, space) => String.raw`
|
|
\angle \left(\text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}}, \text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right)
|
|
\angle \left(\text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}}, \text{oproj}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right)
|
|
@@ -32,7 +32,7 @@ const metrics = {
|
|
evaluate: (data, target) => angleDiff(data.mu.hue, target.hue),
|
|
evaluate: (data, target) => angleDiff(data.mu.hue, target.hue),
|
|
},
|
|
},
|
|
delta: { // euclidean
|
|
delta: { // euclidean
|
|
- option: "Euclidean Distance to Mean (δ)",
|
|
|
|
|
|
+ option: "Euclidean Distance (δ)",
|
|
displayName: p => String.raw`\delta\left(${p}\right)`,
|
|
displayName: p => String.raw`\delta\left(${p}\right)`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\left|\left| \vec{q} - \vec{\mu}\left(${p}\right) \right|\right|
|
|
\left|\left| \vec{q} - \vec{\mu}\left(${p}\right) \right|\right|
|
|
@@ -40,7 +40,7 @@ const metrics = {
|
|
evaluate: (data, target) => vectorDist(data.mu.vector, target.vector),
|
|
evaluate: (data, target) => vectorDist(data.mu.vector, target.vector),
|
|
},
|
|
},
|
|
ch: { // chebyshev
|
|
ch: { // chebyshev
|
|
- option: "Chebyshev Distance to Mean (Ч)",
|
|
|
|
|
|
+ option: "Chebyshev Distance (Ч)",
|
|
displayName: p => String.raw`Ч\left(${p}\right)`,
|
|
displayName: p => String.raw`Ч\left(${p}\right)`,
|
|
displayBody: p => String.raw`
|
|
displayBody: p => String.raw`
|
|
\max_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
\max_{i} \left| \vec{\mu}\left(${p}\right)_i - \vec{q}_i \right|
|
|
@@ -48,7 +48,7 @@ const metrics = {
|
|
evaluate: (data, target) => Math.max(...data.mu.vector.map((x, i) => Math.abs(x - target.vector[i]))),
|
|
evaluate: (data, target) => Math.max(...data.mu.vector.map((x, i) => Math.abs(x - target.vector[i]))),
|
|
},
|
|
},
|
|
lightnessDiff: {
|
|
lightnessDiff: {
|
|
- option: "Lightness Difference from Mean (ℓ)",
|
|
|
|
|
|
+ option: "Lightness Difference (ℓ)",
|
|
displayName: p => String.raw`\ell\left(${p}\right)`,
|
|
displayName: p => String.raw`\ell\left(${p}\right)`,
|
|
displayBody: (p, space) => String.raw`
|
|
displayBody: (p, space) => String.raw`
|
|
\left| \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}} - \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right|
|
|
\left| \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{q}} - \text{comp}_{\vec{${space === "jab" ? "J" : "L"}}}{\vec{\mu}\left(${p}\right)} \right|
|