init component
This commit is contained in:
81
node_modules/fp-ts/lib/Ring.js
generated
vendored
Normal file
81
node_modules/fp-ts/lib/Ring.js
generated
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.getFunctionRing = exports.getTupleRing = exports.negate = exports.tuple = void 0;
|
||||
/**
|
||||
* The `Ring` class is for types that support addition, multiplication, and subtraction operations.
|
||||
*
|
||||
* Instances must satisfy the following law in addition to the `Semiring` laws:
|
||||
*
|
||||
* - Additive inverse: `a - a <-> (zero - a) + a <-> zero`
|
||||
*
|
||||
* Adapted from https://github.com/purescript/purescript-prelude/blob/master/src/Data/Ring.purs
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
var function_1 = require("./function");
|
||||
// -------------------------------------------------------------------------------------
|
||||
// combinators
|
||||
// -------------------------------------------------------------------------------------
|
||||
/**
|
||||
* Given a tuple of `Ring`s returns a `Ring` for the tuple
|
||||
*
|
||||
* @example
|
||||
* import { tuple } from 'fp-ts/Ring'
|
||||
* import * as N from 'fp-ts/number'
|
||||
*
|
||||
* const R = tuple(N.Field, N.Field, N.Field)
|
||||
* assert.deepStrictEqual(R.add([1, 2, 3], [4, 5, 6]), [5, 7, 9])
|
||||
* assert.deepStrictEqual(R.mul([1, 2, 3], [4, 5, 6]), [4, 10, 18])
|
||||
* assert.deepStrictEqual(R.one, [1, 1, 1])
|
||||
* assert.deepStrictEqual(R.sub([1, 2, 3], [4, 5, 6]), [-3, -3, -3])
|
||||
* assert.deepStrictEqual(R.zero, [0, 0, 0])
|
||||
*
|
||||
* @since 2.10.0
|
||||
*/
|
||||
var tuple = function () {
|
||||
var rings = [];
|
||||
for (var _i = 0; _i < arguments.length; _i++) {
|
||||
rings[_i] = arguments[_i];
|
||||
}
|
||||
return ({
|
||||
add: function (x, y) { return rings.map(function (R, i) { return R.add(x[i], y[i]); }); },
|
||||
zero: rings.map(function (R) { return R.zero; }),
|
||||
mul: function (x, y) { return rings.map(function (R, i) { return R.mul(x[i], y[i]); }); },
|
||||
one: rings.map(function (R) { return R.one; }),
|
||||
sub: function (x, y) { return rings.map(function (R, i) { return R.sub(x[i], y[i]); }); }
|
||||
});
|
||||
};
|
||||
exports.tuple = tuple;
|
||||
// -------------------------------------------------------------------------------------
|
||||
// utils
|
||||
// -------------------------------------------------------------------------------------
|
||||
/**
|
||||
* `negate x` can be used as a shorthand for `zero - x`
|
||||
*
|
||||
* @since 2.0.0
|
||||
*/
|
||||
var negate = function (R) {
|
||||
return function (a) {
|
||||
return R.sub(R.zero, a);
|
||||
};
|
||||
};
|
||||
exports.negate = negate;
|
||||
// -------------------------------------------------------------------------------------
|
||||
// deprecated
|
||||
// -------------------------------------------------------------------------------------
|
||||
/**
|
||||
* Use [`tuple`](#tuple) instead.
|
||||
*
|
||||
* @category zone of death
|
||||
* @since 2.0.0
|
||||
* @deprecated
|
||||
*/
|
||||
exports.getTupleRing = exports.tuple;
|
||||
/**
|
||||
* Use [`getRing`](./function.ts.html#getring) instead.
|
||||
*
|
||||
* @category zone of death
|
||||
* @since 2.0.0
|
||||
* @deprecated
|
||||
*/
|
||||
exports.getFunctionRing = function_1.getRing;
|
||||
Reference in New Issue
Block a user