In mathematics, the p-norm of a vector is defined as in [1].

For p = 1, we get the taxicab norm, for p = 2 we get the Euclidean norm, and 
for the limit as p → ±∞ we get the maximum/minimum norm.

Particularly the Euclidean norm is pretty common in graphics-related code.

This could be implemented as an addition to`TypedArray.prototype`.

A rough sketch might look like so:

```js
TypedArray.prototype.norm = function(p) {
        if (Number.isNaN(p)) {
                return p;
        }
        const { abs, min, max, sign } = Math;
        if (Number.isFinite(p)) {
                return this.map(x => abs(x) ** p).reduce((a, b) => a + b, 0) ** 
(1 / p);
        }
        return abs((sign(p) === 1 ? max : min)(...this));
};
```

Since norms are a little too specific for `Array` (as they don't necessarily 
contain numerical values), it might be worth pondering about a native`Vector` 
implementation.

Any opinions?

[1] https://en.wikipedia.org/wiki/Norm_(mathematics)#p-norm

Attachment: signature.asc
Description: This is a digitally signed message part.

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to