Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

InvJac Project

Test Workflow

Overview

The InvJac project tests a hypothesis concerning the sum of the reciprocals of the Jacobian of polynomial maps. It verifies contractions and generates points with a unit Jacobian.

Dependencies

  • GiNaC: C++ library for symbolic calculations.
  • Glog: C++ logging library.
  • Boost: Program options parsing.
  • MySQL Connector/C++: MySQL database connector for C++.
  • PHCpack: Solves polynomial systems by homotopy continuation. Note: Using a forked version with fixes: PHCpack fork

Building the Project

Ensure dependencies are installed. Use CMake to configure and build:

  1. Create a build directory:

    mkdir build
    cd build
  2. Run CMake:

    cmake ..
  3. Build:

    make

Running the Application

Running Locally

After building, run the application:

./invjac

Running via Docker

Run the application using Docker:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog

To use local MySQL, run with extra keys:

docker run --pull always --rm --name invjac -i nook0110/invjac:prog -d --db-host host.docker.internal

Usage

Command Line Options

  • -h, --help: Display help.
  • -i, --input-file: Specify input file.
  • -d, --use-database: Use MySQL database.
  • --db-host: Database host.
  • --db-user: Database user.
  • --db-password: Database password.
  • --db-name: Database name.
  • --results-table: Results table name.
  • --passed-table: Passed results table name.
  • --failed-table: Failed results table name.
  • --error-table: Error results table name.

MySQL Database Setup

Create necessary tables with this SQL script:

-- Main table for all test resultsCREATETABLEtest_results (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
result_type ENUM('Passed', 'Failed', 'Error', 'Contraction') NOT NULL,
run_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
-- Table for Passed resultsCREATETABLEpassed_results (
result_id INTPRIMARY KEY,
amount_of_tests INT UNSIGNED NOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Failed resultsCREATETABLEfailed_results (
result_id INTPRIMARY KEY,
test TEXTNOT NULL,
result TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Error resultsCREATETABLEerror_results (
result_id INTPRIMARY KEY,
error TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;
-- Table for Contraction resultsCREATETABLEcontraction_results (
result_id INTPRIMARY KEY,
contraction_point TEXTNOT NULL,
FOREIGN KEY (result_id) REFERENCES test_results(id) ON DELETE CASCADE
) ENGINE=InnoDB;

Example

Run the application with an input file and database:

./invjac -i input.txt -d --db-host localhost --db-user root --db-password root --db-name checked_functions

Documentation

For detailed documentation, visit: InvJac Documentation

Contributing

Contributions are welcome. Fork the repository and submit pull requests.

License

This project is licensed under the MIT License. See the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages