algebra
Version:
means completeness and balancing, from the Arabic word الجبر
2 lines • 22.2 kB
JavaScript
// http://g14n.info/algebra
require=function t(n,i,e){function r(a,s){if(!i[a]){if(!n[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=i[a]={exports:{}};n[a][0].call(l.exports,(function(t){return r(n[a][1][t]||t)}),l,l.exports,t,n,i,e)}return i[a].exports}for(var o="function"==typeof require&&require,a=0;a<e.length;a++)r(e[a]);return r}({1:[function(t,n,i){const e=t("not-defined"),r=t("static-props"),o=t("./package.json");function a(t){return o.name+": "+t}const s={};function u(t,n){e(t)&&(t={}),e(n)&&(n={});const i={compositionLaw:"addition",contains:"contains",disequality:"disequality",equality:"equality",identity:"zero",inverseCompositionLaw:"subtraction",inversion:"negation",notContains:"notContains"};function o(t){return"string"==typeof n[t]?n[t]:i[t]}function a(t,n,i){return function(){const e=[].slice.call(arguments,0,i);if(p.apply(null,e))return t[n].apply(null,e);throw new TypeError(s.argumentIsNotInGroup)}}const u=a(t,"compositionLaw",2),c=a(t,"inversion",1);function l(){return[].slice.call(arguments).reduce(u)}function p(){const n=[].slice.call(arguments);for(var i in n)if(!t.contains(n[i]))return!1;return!0}function d(t){return!p(t)}function f(n,i){return!t.equality(n,i)}function m(t){const n=[].slice.call(arguments,1);return u(t,n.map(c).reduce(u))}const g=t.identity;if(!0!==t.equality(g,g))throw new TypeError(s.equalityIsNotReflexive);if(!t.contains(g))throw new TypeError(s.identityIsNotInGroup);if(!t.equality(t.compositionLaw(g,g),g))throw new TypeError(s.identityIsNotNeutral);const h={};h[o("identity")]=g,h[o("contains")]=()=>p,h[o("notContains")]=()=>d,h[o("compositionLaw")]=()=>l,h[o("inversion")]=()=>c,h[o("inverseCompositionLaw")]=()=>m,h[o("equality")]=()=>t.equality,h[o("disequality")]=()=>f;const y={};return r(y)(h),y}r(s)({argumentIsNotInGroup:a("argument is not contained in group set"),equalityIsNotReflexive:a('"equality" is not reflexive'),identityIsNotInGroup:a('"identity" must be contained in group set'),identityIsNotNeutral:a('"identity" is not neutral')}),r(u)({error:s}),n.exports=u},{"./package.json":2,"not-defined":12,"static-props":13}],2:[function(t,n,i){n.exports={_args:[["algebra-group@0.6.2","/Users/io/github.com/fibo/algebra"]],_from:"algebra-group@0.6.2",_id:"algebra-group@0.6.2",_inBundle:!1,_integrity:"sha512-//pQGrgIU/Yn9B3UlquJao+GNgKILnD4j5SPpKxQCVe234Mqce6VclldvuDNa8r8HpY67up8UyY8IwIeQeVVAA==",_location:"/algebra-group",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"algebra-group@0.6.2",name:"algebra-group",escapedName:"algebra-group",rawSpec:"0.6.2",saveSpec:null,fetchSpec:"0.6.2"},_requiredBy:["/algebra-ring"],_resolved:"https://registry.npmjs.org/algebra-group/-/algebra-group-0.6.2.tgz",_spec:"0.6.2",_where:"/Users/io/github.com/fibo/algebra",author:{name:"Gianluca Casati",url:"http://g14n.info"},bugs:{url:"https://github.com/fibo/algebra-group/issues"},dependencies:{"not-defined":"^2.0.1","static-props":"^1.1.1"},description:"defines and algebra group structure",devDependencies:{"dot-editorconfig":"^1.1.0","pre-commit":"^1.2.2",standa:"^2.0.1",tape:"^4.9.0"},homepage:"http://g14n.info/algebra-group",keywords:["algebra"],license:"MIT",main:"algebra-group.js",name:"algebra-group","pre-commit":["lint","test","check-deps"],repository:{type:"git",url:"git://github.com/fibo/algebra-group.git"},scripts:{"check-deps":"npm outdated",lint:"standa",postversion:"git push origin v${npm_package_version}; npm publish; git push origin master",test:"NODE_PATH=. tape test.js"},version:"0.6.2"}},{}],3:[function(t,n,i){const e=t("algebra-group"),r=t("static-props"),o=t("./package.json");function a(t){return o.name+": "+t}const s={cannotDivideByZero:a("Cannot divide by zero"),doesNotContainIdentity:a('"identity" must be contained in ring set'),identityIsNotNeutral:a('"identity" is not neutral')};function u(t,n){const i=e({identity:t[0],contains:n.contains,equality:n.equality,compositionLaw:n.addition,inversion:n.negation});function r(t){if(i.equality(t,i.zero))throw new TypeError(s.cannotDivideByZero);return n.inversion(t)}i.multiplication=function(){return[].slice.call(arguments).reduce(n.multiplication)},i.inversion=r,i.division=function(t){const i=[].slice.call(arguments,1);return n.multiplication(t,i.map(r).reduce(n.multiplication))};const o=t[1];if(i.notContains(o))throw new TypeError(s.doesNotContainIdentity);if(i.disequality(n.multiplication(o,o),o))throw new TypeError(s.identityIsNotNeutral);if(i.notContains(t[1]))throw new TypeError(s.doesNotContainIdentity);return i.one=t[1],i}r(u)({error:s}),n.exports=u},{"./package.json":4,"algebra-group":1,"static-props":13}],4:[function(t,n,i){n.exports={_args:[["algebra-ring@0.6.4","/Users/io/github.com/fibo/algebra"]],_from:"algebra-ring@0.6.4",_id:"algebra-ring@0.6.4",_inBundle:!1,_integrity:"sha512-ydV8zKNp7T/t2zSENFqO5MJe/xNQBYLL5sXkC6Cqa9WEwuKOWAPMHEqhuO0n7iPqugE5AYoodTltLIPZt9QOag==",_location:"/algebra-ring",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"algebra-ring@0.6.4",name:"algebra-ring",escapedName:"algebra-ring",rawSpec:"0.6.4",saveSpec:null,fetchSpec:"0.6.4"},_requiredBy:["/cayley-dickson"],_resolved:"https://registry.npmjs.org/algebra-ring/-/algebra-ring-0.6.4.tgz",_spec:"0.6.4",_where:"/Users/io/github.com/fibo/algebra",author:{name:"Gianluca Casati",url:"http://g14n.info"},bugs:{url:"https://github.com/fibo/algebra-ring/issues"},dependencies:{"algebra-group":"^0.6.2","static-props":"^1.1.2"},description:"defines an algebra ring structure",devDependencies:{"dot-editorconfig":"^1.1.1","pre-commit":"^1.1.2",standa:"^12.0.1",tape:"^4.9.2"},homepage:"http://g14n.info/algebra-ring",keywords:["algebra","ring","structure"],license:"MIT",main:"algebra-ring.js",name:"algebra-ring","pre-commit":["lint","test","check-deps"],repository:{type:"git",url:"git+https://github.com/fibo/algebra-ring.git"},scripts:{"check-deps":"npm outdated",lint:"standa --fix",postversion:"git push origin v${npm_package_version}; npm publish; git push origin master",test:"NODE_PATH=. tape test.js"},version:"0.6.4"}},{}],5:[function(t,n,i){var e=t("algebra-ring"),r=Math.pow.bind(null,2);function o(t,n){return 1===n?t:function(i){for(var e=[],r=0;r<n;r++)e.push(t(i[r]));return e}}function a(t,n){return 1===n?t:function(i,e){for(var r=[],o=0;o<n;o++)r.push(t(i[o],e[o]));return r}}n.exports=function(t,n){var i=e([t.zero,t.one],t);if(0===n)return i;var s=i.zero,u=i.one,c=i.addition,l=i.multiplication,p=i.negation,d=i.disequality,f=i.notContains,m=[],g=[],h=r(n);m.push(u),g.push(s);for(var y=1;y<h;y++)m.push(s),g.push(s);function b(t,n){if(0===n)return function(t){return t};var i=r(n);return function(n){for(var e=[n[0]],r=1;r<i;r++)e.push(t(n[r]));return e}}var v=b(p,n),x=function t(n,i,e,s){if(0===s)return function(t,n){return e(t[0],n[0])};var u=r(s),c=r(s-1),l=a(n,c),p=b(i,s-1),d=t(n,i,e,s-1),f=o(i,c);return function(t,n){for(var i=[],e=[],r=[],o=[],a=0;a<c;a++)i.push(t[a]),r.push(n[a]);for(var s=c;s<u;s++)e.push(t[s]),o.push(n[s]);var m=l(d(i,r),f(d(p(o),e))),g=l(d(o,i),d(e,p(r)));if(1===c)return[m,g];for(var h=[],y=0;y<c;y++)h.push(m[y]);for(var b=0;b<c;b++)h.push(g[b]);return h}}(c,p,l,n);function w(t){for(var n=s,i=x(t,v(t)),e=0;e<h;e++)n=c(n,i[e]);return n}var q=a(c,h),_=o(p,h),j=e([g,m],{contains:function(t){for(var n=0;n<h;n++)if(f(t[n]))return!1;return!0},equality:function(t,n){for(var i=0;i<h;i++)if(d(t[i],n[i]))return!1;return!0},addition:q,negation:_,multiplication:x,inversion:function(t){for(var n=w(t),e=v(t),r=0;r<h;r++)e[r]=i.division(e[r],n);return e}});return j.conjugation=v,j.norm=w,j}},{"algebra-ring":3}],6:[function(t,n,i){n.exports=i.default=function t(n,i,e,r){const o=r.length,a=[];if(1===o)for(let t=0;t<i;t++)a.push([t]);else{const n=r.slice(0,o-1).reduce(t,[]);for(let t=0;t<n.length;t++)for(let e=0;e<i;e++)a.push(n[t].concat(e))}return a}},{}],7:[function(t,n,i){var e=t("not-defined");function r(t,n,i){return n+t*i}function o(t,n,i,e,o){for(var a=[],s=0;s<n;s++)for(var u=0;u<i;u++)s!==e&&u!==o&&a.push(t[r(s,u,i)]);return a}n.exports=function t(n,i,a){if(1===n.length)return n[0];if(e(a)&&(a=Math.sqrt(n.length)),a%1!=0)throw new TypeError("data.lenght must be a square");var s;e(i)&&(i={addition:function(t,n){return t+n},multiplication:function(t,n){return t*n},negation:function(t){return-t}});for(var u=0;u<a;u++){var c=t(o(n,a,a,0,u),i,a-1);(0+u)%2==1&&(c=i.negation(c));var l=r(0,u,a);s=e(s)?i.multiplication(n[l],c):i.addition(s,i.multiplication(n[l],c))}return s}},{"not-defined":12}],8:[function(t,n,i){var e=t("not-defined"),r=t("static-props"),o=t("./package.json");function a(t){return o.name+": "+t}var s={};r(s)({leftMatrixNotCompatible:a("Cannot multiply matrix at left side"),rightMatrixNotCompatible:a("Cannot multiply matrix at right side")});var u=(t,n,i)=>n+t*i;function c(t){e(t)&&(t={});var n=t.addition,i=t.multiplication;return e(n)&&(n=(t,n)=>t+n),e(i)&&(i=(t,n)=>t*n),function(t){return function(e,r){var o=r.length/t,a=e.length/t,c=Math.floor(o)!==o,l=Math.floor(a)!==a;if(c)throw new TypeError(s.rightMatrixNotCompatible);if(l)throw new TypeError(s.leftMatrixNotCompatible);for(var p=[],d=0;d<a;d++)for(var f=0;f<o;f++){for(var m=u(d,0,t),g=u(0,f,o),h=r[g],y=e[m],b=i(y,h),v=1;v<t;v++)m=u(d,v,t),h=r[g=u(v,f,o)],y=e[m],b=n(b,i(h,y));p.push(b)}return p}}}r(c)({error:s}),n.exports=c},{"./package.json":9,"not-defined":12,"static-props":13}],9:[function(t,n,i){n.exports={_args:[["matrix-multiplication@0.5.2","/Users/io/github.com/fibo/algebra"]],_from:"matrix-multiplication@0.5.2",_id:"matrix-multiplication@0.5.2",_inBundle:!1,_integrity:"sha512-rr3Adfxn9cktAn8zYAkYiDbFZFkFflwjm9oSm5drBIQJPjFoqUlT9nq7aMwXpr+Nr4uurQKgxy+9pfk5X2YmYA==",_location:"/matrix-multiplication",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"matrix-multiplication@0.5.2",name:"matrix-multiplication",escapedName:"matrix-multiplication",rawSpec:"0.5.2",saveSpec:null,fetchSpec:"0.5.2"},_requiredBy:["/"],_resolved:"https://registry.npmjs.org/matrix-multiplication/-/matrix-multiplication-0.5.2.tgz",_spec:"0.5.2",_where:"/Users/io/github.com/fibo/algebra",author:{name:"Gianluca Casati",url:"http://g14n.info"},bugs:{url:"https://github.com/fibo/matrix-multiplication/issues"},dependencies:{"not-defined":"^2.0.1","static-props":"^1.1.1"},description:"implements row by column multiplication",devDependencies:{"pre-commit":"^1.2.2",standa:"^1.0.2",tape:"^4.8.0"},homepage:"http://g14n.info/matrix-multiplication",keywords:["algebra"],license:"MIT",main:"matrix-multiplication.js",name:"matrix-multiplication","pre-commit":["lint","test","check-deps"],repository:{type:"git",url:"git://github.com/fibo/matrix-multiplication.git"},scripts:{"check-deps":"npm outdated",lint:"standa",postversion:"git push origin v${npm_package_version}; npm publish; git push origin master",test:"NODE_PATH=. tape test.js"},version:"0.5.2"}},{}],10:[function(t,n,i){var e=t("static-props"),r=t("./package.json");var o,a={};function s(t,n){for(var i=0;i<t.length;i++)if(n[i]>t[i])throw new TypeError(a.outOfBoundIndex);var e=t.length;if(1===e)return n[0];for(var r=e-1,o=t[r],s=n[r]+o*n[r-1],u=2;u<e;u++)s+=(o*=t[r-u])*n[r-u];return s}e(a)({outOfBoundIndex:(o="Index exceeds its bound",r.name+": "+o)}),e(s)({error:a}),n.exports=s},{"./package.json":11,"static-props":13}],11:[function(t,n,i){n.exports={_args:[["multidim-array-index@0.6.0","/Users/io/github.com/fibo/algebra"]],_from:"multidim-array-index@0.6.0",_id:"multidim-array-index@0.6.0",_inBundle:!1,_integrity:"sha512-ojHXo7TNXU8i/MxkbC6BqLPR0z1Elr77PuX0xCLoQUSdo/53UjlRBcrDiaOyoLscQp1j84+qQTG1WwHPl6Vz/g==",_location:"/multidim-array-index",_phantomChildren:{},_requested:{type:"version",registry:!0,raw:"multidim-array-index@0.6.0",name:"multidim-array-index",escapedName:"multidim-array-index",rawSpec:"0.6.0",saveSpec:null,fetchSpec:"0.6.0"},_requiredBy:["/","/tensor-contraction"],_resolved:"https://registry.npmjs.org/multidim-array-index/-/multidim-array-index-0.6.0.tgz",_spec:"0.6.0",_where:"/Users/io/github.com/fibo/algebra",author:{name:"Gianluca Casati",url:"http://g14n.info"},bugs:{url:"https://github.com/fibo/multidim-array-index/issues"},dependencies:{"static-props":"^1.0.0"},description:"maps multidimensional array indices to monodimensional array index",devDependencies:{"dot-editorconfig":"^1.1.0","pre-commit":"^1.2.2",standa:"^2.0.1",tape:"^4.9.0"},homepage:"http://g14n.info/multidim-array-index",keywords:["array","multidim","index"],license:"MIT",main:"multidim-array-index.js",name:"multidim-array-index","pre-commit":["check-deps","lint","test"],repository:{type:"git",url:"git://github.com/fibo/multidim-array-index.git"},scripts:{"check-deps":"npm outdated",lint:"standa",postversion:"git push origin v${npm_package_version}; npm publish; git push origin master",test:"NODE_PATH=. tape test.js"},version:"0.6.0"}},{}],12:[function(t,n,i){n.exports=function(t){return null==t||"number"==typeof t&&isNaN(t)||t.length<1&&"function"!=typeof t||"object"==typeof t&&Object.keys(t).length<1}},{}],13:[function(t,n,i){n.exports=i.default=function(t){return function(n,i){var e={};for(var r in n){var o={configurable:!1,enumerable:i},a=n[r];"function"==typeof a?o.get=a:(o.value=a,o.writable=!1),e[r]=o}Object.defineProperties(t,e)}}},{}],14:[function(t,n,i){n.exports=function(t){t()}},{}],15:[function(t,n,i){var e=t("indices-permutations"),r=t("multidim-array-index");n.exports=function(t,n,i,o){n.sort();var a=n[0],s=n[1],u=i[a],c=i[s];if(u!==c)throw new TypeError("Contraction indices does not have the same dimension: "+a+"-th index = "+u+" but "+s+"-th index = "+c+".");function l(t,n){return t.push(n),t}if(2===i.length){for(var p=o[0],d=1;d<u;d++){var f=r(i,[d,d]);p=t(p,o[f])}return p}return i.reduce((function(t,n,i){return i!==a&&i!==s&&t.push(n),t}),[]).reduce(e,[]).reduce(function(n){return function(e,o){var c=o.reduce(l,[]);c.splice(a,0,0),c.splice(s,0,0);for(var p=r(i,c),d=n[p],f=1;f<u;f++){var m=o.reduce(l,[]);m.splice(a,0,f),m.splice(s,0,f);var g=r(i,m);d=t(d,n[g])}return e.push(d),e}}(o),[])}},{"indices-permutations":6,"multidim-array-index":10}],16:[function(t,n,i){n.exports={zero:!1,one:!0,contains:t=>"boolean"==typeof t,addition:(t,n)=>t||n,equality:(t,n)=>t===n,negation:t=>t,multiplication:(t,n)=>t&&n,inversion:t=>t}},{}],17:[function(t,n,i){const e=t("cayley-dickson"),r=t("not-defined"),o=t("./Ring.js");n.exports=function(t,n){r(n)&&(n=1);const i=[1,2,4,8].indexOf(n);if(-1===i)throw new TypeError("Argument n must be 1, 2, 4 or 8");return o(e(t,i))}},{"./Ring.js":19,"cayley-dickson":5,"not-defined":12}],18:[function(t,n,i){const e=t("laplace-determinant"),r=t("matrix-multiplication"),o=t("multidim-array-index"),a=t("static-props"),s=t("tensor-contraction"),u=t("./itemsPool.js"),c=t("./toData.js");function l(t){const{addition:n,equality:i,subtraction:u}=t,p=s.bind(null,n),d=!0;return function(s,f){void 0===f&&(f=s);const m=s*f,g=[s,f],h=s===f;function y(n){const i=c(n);return e(i,t,s)}function b(t,i){const e=c(t),r=c(i),o=[];for(let t=0;t<m;t++)o.push(n(e[t],r[t]));return o}function v(t,n){if(t instanceof j&&n instanceof j){if(t.numCols!==n.numCols)return!1;if(t.numRows!==n.numRows)return!1}const e=c(t),r=c(n);if(e.length!==r.length)return!1;for(let t=0;t<m;t++)if(!i(e[t],r[t]))return!1;return!0}function x(n,i){const e=c(n),o=c(i);return r(t)(f)(e,o)}function w(t,n){const i=c(t),e=c(n),r=[];for(let t=0;t<m;t++)r.push(u(i[t],e[t]));return r}function q(t){const n=c(t);return p([0,1],g,n)}function _(t){const n=c(t),i=[];for(let t=0;t<s;t++)for(let e=0;e<f;e++){const r=o([s,f],[t,e]);i[o([f,s],[e,t])]=n[r]}return i}class j{constructor(n){a(this)({data:n,numCols:f,numRows:s},d),a(this)({Scalar:t,tr:()=>this.transposed}),h&&a(this)({determinant:()=>{const n=y(this);return new t(n)},trace:()=>{const n=q(this);return new t(n)}})}equality(t){return v(this,t)}get transposed(){const n=_(this);return new(l(t)(f,s))(n)}addition(t){const n=b(this,t);return new j(n)}multiplication(t){const n=x(this,t);return new j(n)}subtraction(t){const n=w(this,t);return new j(n)}}return j.prototype.add=j.prototype.addition,j.prototype.eq=j.prototype.equality,j.prototype.equal=j.prototype.equality,j.prototype.mul=j.prototype.multiplication,j.prototype.sub=j.prototype.subtraction,a(j)({numCols:f,numRows:s}),a(j)({addition:()=>b,equality:()=>v,multiplication:()=>x,subtraction:()=>w,transpose:()=>_}),a(j)({add:j.addition,eq:j.equality,mul:j.multiplication,sub:j.subtraction,tr:j.transpose}),h&&(j.prototype.det=j.prototype.determinant,a(j)({determinant:()=>y,trace:()=>q}),a(j)({det:j.determinant})),j}}u.set("MatrixSpace",l),n.exports=l},{"./itemsPool.js":22,"./toData.js":24,"laplace-determinant":7,"matrix-multiplication":8,"multidim-array-index":10,"static-props":13,"tensor-contraction":15}],19:[function(t,n,i){const e=t("static-props"),r=t("./toData.js");n.exports=function({addition:t,conjugation:n,contains:i,division:o,equality:a,inversion:s,multiplication:u,negation:c,notContains:l,one:p,subtraction:d,zero:f}){function m(n,i){const e=r(n),o=r(i);return t(e,o)}function g(t){const i=r(t);return n(i)}function h(t){const n=r(t);return i(n)}function y(t,n){const i=r(t),e=r(n);return a(i,e)}function b(t,n){return!y(t,n)}function v(t,n){const i=r(t),e=r(n);if(j.equality(f,e))throw new Error("Cannot divide by zero");return o(i,e)}function x(t){const n=r(t);if(j.equality(f,n))throw new Error("Cannot invert zero");return s(n)}function w(t,n){const i=r(t),e=r(n);return u(i,e)}function q(t){const n=r(t);return c(n)}function _(t,n){const i=r(t),e=r(n);return d(i,e)}class j{constructor(t){if(l(t))throw new TypeError("Invalid data = "+t);e(this)({data:t},!0),e(this)({add:()=>this.addition,conj:()=>this.conjugation,div:()=>this.division,eq:()=>this.equality,equal:()=>this.equality,equals:()=>this.equality,inv:()=>this.inversion,mul:()=>this.multiplication,ne:()=>this.disequality,neg:()=>this.negation,notEqual:()=>this.disequality,notEquals:()=>this.disequality,sub:()=>this.subtraction})}addition(t){const n=m(this,t);return new j(n)}belongsTo({contains:t}){return t(this.data)}conjugation(){const t=g(this);return new j(t)}disequality(t){return b(this,t)}division(t){const n=v(this,t);return new j(n)}equality(t){return y(this,t)}inversion(){const t=x(this);return new j(t)}multiplication(t){const n=w(this,t);return new j(n)}negation(){const t=q(this);return new j(t)}subtraction(t){const n=_(this,t);return new j(n)}}return e(j)({zero:f,one:p}),e(j)({addition:()=>m,conjugation:()=>g,contains:()=>h,disequality:()=>b,division:()=>v,equality:()=>y,inversion:()=>x,multiplication:()=>w,negation:()=>q,subtraction:()=>_}),e(j)({add:()=>j.addition,conj:()=>j.conjugation,div:()=>j.division,eq:()=>j.equality,equal:()=>j.equality,equals:()=>j.equality,inv:()=>j.inversion,mul:()=>j.multiplication,ne:()=>j.disequality,notEqual:()=>j.disequality,notEquals:()=>j.disequality,neg:()=>j.negation,sub:()=>j.subtraction}),j}},{"./toData.js":24,"static-props":13}],20:[function(t,n,i){const e=t("./CompositionAlgebra.js");n.exports=function(t){return e(t)}},{"./CompositionAlgebra.js":17}],21:[function(t,n,i){const e=t("./itemsPool"),r=t("matrix-multiplication"),o=t("static-props"),a=t("./toData");function s(t){const{addition:n,equality:i,multiplication:s,subtraction:u}=t,c=!0;return function(l){function p(t,n){const i=a(t),e=a(n),r=i[0],o=i[1],c=i[2],l=e[0],p=e[1],d=e[2],f=[];return f.push(u(s(o,d),s(c,p))),f.push(u(s(c,l),s(r,d))),f.push(u(s(r,p),s(o,l))),f}function d(i){const e=a(i);let r=s(e[0],e[0]);for(let t=1;t<l;t++)r=n(r,s(e[t],e[t]));return new t(r)}function f(t,i){const e=a(t),r=a(i);if(e.length!==r.length)throw new TypeError("Vectors have not the same dimension");let o=s(e[0],r[0]);for(let t=1;t<l;t++)o=n(o,s(e[t],r[t]));return o}function m(t,i){const e=a(t),r=a(i),o=[];for(let t=0;t<l;t++)o.push(n(e[t],r[t]));return o}function g(t,n){const e=a(t),r=a(n);if(e.length!==r.length)return!1;for(let t=0;t<l;t++)if(!i(e[t],r[t]))return!1;return!0}function h(t,n){const i=a(t),e=a(n),r=[];for(let t=0;t<l;t++)r.push(u(i[t],e[t]));return r}class y{constructor(n){o(this)({data:n},c),o(this)({norm:d(n),dimension:l,Scalar:t}),o(this)({add:()=>this.addition,eq:()=>this.equality,equals:()=>this.equality,mul:()=>this.multiplication,scalar:()=>this.scalarProduct,sub:()=>this.subtraction})}addition(t){const n=m(this,t);return new y(n)}equality(t){return g(this,t)}multiplication(n){const i=e.get("MatrixSpace"),o=function(n,i){const e=a(n),o=a(i);return r(t)(l)(e,o)}(this.data,n),s=l,u=o.length/s;return new(i(t)(s,u))(o)}scalarProduct(n){const i=f(this,n);return new t(i)}subtraction(t){const n=h(this,t);return new y(n)}}function b(t){const n=p(this.data,t);return new y(n)}return o(y)({dimension:l},c),o(y)({addition:()=>m,equality:()=>g,norm:()=>d,scalarProduct:()=>f,subtraction:()=>h}),o(y)({add:()=>y.addition,eq:()=>y.equality,scalar:()=>y.scalarProduct,sub:()=>y.subtraction}),3===l&&(y.prototype.cross=b,y.prototype.crossProduct=b,o(y)({crossProduct:()=>p,cross:()=>p})),y}}e.set("VectorSpace",s),n.exports=s},{"./itemsPool":22,"./toData":24,"matrix-multiplication":8,"static-props":13}],22:[function(t,n,i){const e=new Map;n.exports=e},{}],23:[function(t,n,i){const e={zero:0,one:1,contains:t=>"number"==typeof t&&isFinite(t),equality:(t,n)=>Math.abs(t-n)<Number.EPSILON,addition:(t,n)=>t+n,negation:t=>-t,multiplication:(t,n)=>t*n,inversion:t=>1/t};n.exports=e},{}],24:[function(t,n,i){const e=t("not-defined");n.exports=function(t){let n;if(n=e(t.data)?t:t.data,e(n))throw new TypeError("No data");return n}},{"not-defined":12}],algebra:[function(t,n,i){t("strict-mode")(()=>{const n=t("./src/Boole.js");i.Boole=n;const e=t("./src/CompositionAlgebra.js");i.CompositionAlgebra=e;const r=t("./src/Scalar.js");i.Scalar=r;const o=t("./src/realField.js"),a=e(o,1),s=e(o,2),u=e(o,4),c=e(o,8);i.Real=a,i.Complex=s,i.Quaternion=u,i.Octonion=c;const l=t("./src/VectorSpace.js"),p=t("./src/MatrixSpace.js");i.C=s,i.C2x2=p(s)(2),i.H=u,i.R=a,i.R2=l(a)(2),i.R3=l(a)(3),i.R2x2=p(a)(2),i.VectorSpace=l,i.MatrixSpace=p})},{"./src/Boole.js":16,"./src/CompositionAlgebra.js":17,"./src/MatrixSpace.js":18,"./src/Scalar.js":20,"./src/VectorSpace.js":21,"./src/realField.js":23,"strict-mode":14}]},{},[]);