johnpaulada/matrix-factorization-js

View on GitHub
index.js

Summary

Maintainability
A
0 mins
Test Coverage
"use strict";function n(n,r,t,o,i,a,l){var v=0;return c(n,function(n){c(r,function(r){var d=t[n][r];if(d>0){var h=u(a[n],e(l,r));v+=f(d-h),c(o,function(t){v+=i/2*(f(a[n][t])+f(l[t][r]))})}})}),v}function r(n){return t(n)?a(n[0].length,n.length,function(){return 0}).map(function(r,t){return r.map(function(r,u){return n[u][t]})}):n}function t(n){return Array.isArray(n[0])}function u(n,u){var e=r(u);return t(n)||t(u)?n.map(function(n){return e.map(function(r){return o(n,r)})}):o(n,u)}function e(n,r){return n.map(function(n){return n[r]})}function o(n,r){return i(n,r,function(n,r){return n*r}).reduce(function(n,r){return n+r})}function i(n,r,t){return n.map(function(n,u){return t(n,r[u])})}function f(n){return Math.pow(n,2)}function a(n,r){for(var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return 0},u=[],e=0;e<n;e++){u.push([]);for(var o=0;o<r;o++)u[e][o]=t()}return u}function c(n,r){for(var t=0;t<n;)r(t++)}var l=function(){function n(n,r){var t=[],u=!0,e=!1,o=void 0;try{for(var i,f=n[Symbol.iterator]();!(u=(i=f.next()).done)&&(t.push(i.value),!r||t.length!==r);u=!0);}catch(n){e=!0,o=n}finally{try{!u&&f.return&&f.return()}finally{if(e)throw o}}return t}return function(r,t){if(Array.isArray(r))return r;if(Symbol.iterator in Object(r))return n(r,t);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),v={factorizeMatrix:function(t){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:5,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:5e3,f=arguments.length>3&&void 0!==arguments[3]?arguments[3]:2e-4,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:.02,v=(arguments.length>5&&void 0!==arguments[5]&&arguments[5],t.length),d=t[0].length,h=a(v,o,function(){return Math.random()}),m=r(a(d,o,function(){return Math.random()})),p=t.length,g=t[0].length,y=function(n,r,t){return n+f*(2*t*r-l*n)};return c(i,function(){c(p,function(n){c(g,function(r){var i=t[n][r];if(i>0){var f=i-u(h[n],e(m,r));c(o,function(t){var u=h[n][t],e=m[t][r];h[n][t]=y(u,e,f),m[t][r]=y(e,u,f)})}})}),n(p,g,t,o,l,h,m)}),[h,r(m)]},buildCompletedMatrix:function(n){var t=l(n,2);return u(t[0],r(t[1]))}};"undefined"!=typeof module&&module.exports?module.exports=v:window.matrixFactorization=v;