Giter Club home page Giter Club logo

set-utilities's Introduction

set utilities

NPM Version MIT License FOSSA Status

Build & Test Job Scale Test Job Coverage

Install Size Zipped Size Language

High performance set theory.

This library is a collection of functional utilities from set theory, each of which operate on an arbitrary number of input sets.

Each function accepts variable arguments and operates with the principals of immutability: none of the input sets are modified in the process of calculation.

Set Operations:

difference: A ∖ B

The difference of sets contains all the elements of the first set, not contained in other sets.

difference visual

import { difference } from 'set-utilities';

const differenceAB = difference(setA, setB);
const differenceABC = difference(setA, setB, setC);

intersection: A ∩ B

The intersection of sets contains all the elements each contained in every set.

intersection visual

import { intersection } from 'set-utilities';

const intersectionAB = intersection(setA, setB);
const intersectionABC = intersection(setA, setB, setC);

union: A ∪ B

The union of sets contains all the elements each contained in any set.

union visual

import { union } from 'set-utilities';

const unionAB = union(setA, setB);
const unionABC = union(setA, setB, setC);

symmetric difference (xor): A ∆ B

The symmetric difference of sets contains only the unique elements of each set.

xor visual

import { xor } from 'set-utilities';

const xorAB = xor(setA, setB);
const xorABC = xor(setA, setB, setC);

Set Comparisons:

equivalence: A ∼ B

Sets are equivalent if they have the same cardinality, and there is a bijection between the elements contained in each set.

equivalence visual

import { equivalence } from 'set-utilities';

const isEquivalentAB = equivalence(setA, setB);
const isEquivalentABC = equivalence(setA, setB, setC);

disjoint: A ∩ B = ∅

Sets are disjoint if they have no elements in common.

disjoint visual

import { disjoint } from 'set-utilities';

const isDisjointAB = disjoint(setA, setB);
const isDisjointABC = disjoint(setA, setB, setC);

pairwise disjoint: A ∩ B ∩ C = ∅

A family of sets are pairwise disjoint if none of the sets share any elements in common.

pairwise disjoint visual

import { pairwiseDisjoint } from 'set-utilities';

const isPairwiseDisjointAB = pairwiseDisjoint(setA, setB);
const isPairwiseDisjointABC = pairwiseDisjoint(setA, setB, setC);

subset: A ⊆ B

A set is a subset of another if all of its elements are contained in the other set.

subset visual

import { subset } from 'set-utilities';

const isSubsetAB = subset(setA, setB);
const isSubsetABC = subset(setA, setB, setC);

proper subset: A ⊂ B

A set is a proper subset of another if all of its elements are contained in the other set, and it has a lower cardinality than the other set.

proper subset visual

import { properSubset } from 'set-utilities';

const isProperSubsetAB = properSubset(setA, setB);
const isProperSubsetABC = properSubset(setA, setB, setC);

superset: A ⊇ B

A set is a superset of another if it contains all the elements contained in the other set.

superset visual

import { superset } from 'set-utilities';

const isSupersetAB = superset(setA, setB);
const isSupersetABC = superset(setA, setB, setC);

proper superset: A ⊃ B

A set is a proper superset of another if it contains all the elements contained in the other set, and it has a greater cardinality than the other set.

proper superset visual

import { properSuperset } from 'set-utilities';

const isProperSupersetAB = properSuperset(setA, setB);
const isProperSupersetABC = properSuperset(setA, setB, setC);

Set Ordering:

sort: A ⇅

An immutable sorting operation for sets.

sort visual

import { sort } from 'set-utilities';

const sortedA = sort(setA);
const sortedB = sort(setB, compareFunction);

set-utilities's People

Contributors

fossabot avatar kubikowski avatar random42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.