VaKeR CYBER ARMY
Logo of a company Server : Apache/2.4.41 (Ubuntu)
System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64
User : www-data ( 33)
PHP Version : 7.4.33
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/html/libs/absol-full/dist/js/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/html/libs/absol-full/dist/js/mdls__absol__src__String__stringMatching.js
/*** module: node_modules/absol/src/String/stringMatching.js ***/
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.wordLike = wordLike;
exports.wordsMatch = wordsMatch;
exports.phraseMatch = phraseMatch;
exports.phraseLike = phraseLike;
exports.exportStringMatchingCode = exportStringMatchingCode;

var _int = require("../Math/int");

/**
 *
 * @param {String} a
 * @param {String} b
 */
function wordLike(a, b) {
  var m = a.length;
  var n = b.length;

  function map(i, j) {
    return i * (n + 1) + j;
  }

  var Q = Array((m + 1) * (n + 1)).fill(0);

  for (var i = 0; i < m; ++i) for (var j = 0; j < n; ++j) if (a.charAt(i) == b.charAt(j)) {
    if (Q[map(i + 1, j + 1)]) {
      if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + 1) Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;
    } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + 1;
  } else Q[map(i + 1, j + 1)] = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);

  return Q[map(m, n)] / (0, _int.harmonicMean)(m, n);
}
/**
 *
 * @param {Array<String>} sq1
 * @param {Array<String>} sq2
 * @param {number=} matchWordPow
 */


function wordsMatch(sq1, sq2, matchWordPow) {
  matchWordPow = matchWordPow === undefined ? 1 : matchWordPow;
  var m = sq1.length;
  var n = sq2.length;

  function map(i, j) {
    return i * (n + 1) + j;
  }

  var Q = Array((m + 1) * (n + 1)).fill(0);
  var e = 0.0;

  for (var i = 0; i < m; ++i) for (var j = 0; j < n; ++j) {
    e = Math.pow(wordLike(sq1[i], sq2[j]), matchWordPow);

    if (Q[map(i + 1, j + 1)]) {
      if (Q[map(i + 1, j + 1)] < Q[map(i, j)] + e) Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;
    } else Q[map(i + 1, j + 1)] = Q[map(i, j)] + e;

    e = Math.max(Q[map(i + 1, j)], Q[map(i, j + 1)]);
    if (e > Q[map(i + 1, j + 1)]) Q[map(i + 1, j + 1)] = e;
  }

  return Q[map(m, n)];
}

function phraseMatch(a, b, matchWordPow) {
  matchWordPow = matchWordPow || 1;
  var spliter = /[\s,-\.+?\_]+/;

  var notEmp = function (e) {
    return e.length > 0;
  };

  var sq1 = a.toLowerCase().split(spliter).filter(notEmp);
  var sq2 = b.toLowerCase().split(spliter).filter(notEmp);
  var wordsMatchScore = wordsMatch(sq1, sq2);
  var m = sq1.length;
  var n = sq2.length;
  return wordsMatchScore / Math.max((0, _int.harmonicMean)(m, n), 1);
}

;

function phraseLike(a, b, matchWordPow) {
  matchWordPow = matchWordPow || 1;
  var spliter = /[\s,-\.+?\_]+/;

  var notEmp = function (e) {
    return e.length > 0;
  };

  var sq1 = a.toLowerCase().split(spliter).filter(notEmp);
  var sq2 = b.toLowerCase().split(spliter).filter(notEmp);
  var m = sq1.length;
  var n = sq2.length;
  var wordsMatchScore = wordsMatch(sq1, sq2);
  return wordsMatchScore / Math.max((0, _int.harmonicMean)(m, n), 1);
}

function exportStringMatchingCode() {
  return [_int.harmonicMean, phraseLike, phraseMatch, wordLike, wordsMatch].map(f => f + '').join('\n') + '\nvar _stringFormat = {harmonicMean, phraseLike, wordLike, wordsMatch};';
}

VaKeR 2022