This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

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
This repository was archived by the owner on Oct 25, 2024. It is now read-only.

Latest commit

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

LAPJV - Go Implementation

GoDoc

This repository is the Golang implementation of the LAPJV algorithm for assignment problem and includes tools to ease testing and library usage.


Overview

The repository contains the library that solves a matrix using the LAPJV algorithm. It also contains a wrapper divided in two:

  • A generator that generates a matrix and saves it on a file.
  • A solver that uses a file containing a matrix.

These two commands are available over the CLI. The solver can also be used directly as explained below.

Installation

The library can be installed using the go get command:

$ go get github.com/heetch/lapjv/...

Library

Include Lapjv in your project:

import"github.com/heetch/lapjv"

Tool

You now can use the lapjv command and see the usage. (If nothing appears check that the $GOPATH/bin folder is in your PATH env variable.

Getting Started

Using the Library

package main
import (
"fmt""math/rand""github.com/heetch/lapjv"
)
funcmain() {
// Create your matrix here and fill it with values.m:=make([][]int, 10)
fori:=0; i<10; i++ {
m[i] =make([]int, 10)
forj:=0; j<10; j++ {
// You could fill your matrix here with cost valuesm[i][j] =rand.Intn(10000)
}
}
res:=lapjv.Lapjv(m)
//Here you now can use fields of the res variable to check the result.//Fields are:// - Cost: the cost of the resolution// - InRow: the solution, based on rows.// - InCol: the solution, based on cols.fmt.Println(res.Cost)
}

Using the Tool

Usage: Usage

Generator

The generator can be used, in the simplest way, with:

$ lapjv generator

This command will generate a file named example.json with the JSON format of a 10*10 randomly filled matrix.

Interactive mode

You can use the interactive mode to specify options of the matrix you want to generate:

$ lapjv generator -i

This mode also generates an example.json file in the current directory.

Manual mode

You can use the manual mode to specify options of the matrix you want to generate:

$ lapjv generator -s size -t constant

This mode generates an example.json file in the current directory using only options given as parameter.

Specifying an output file

You can specify the file in which you want to write the matrix using the -f option. This option is available in both manual and interactive modes. You can do it with:

$ lapjv generator -f filename

This one option can be combined with ones above.

Solver

The solver can be used using:

$ lapjv solver

You can launch it without any option. In this case , the solver will read from the stdin, waiting for a JSON-formated matrix.

Using with the generator

You can generate a matrix and solve it in the same time using options of the generator.

Example:

$ lapjv solver -i

This command will prompt you for options and solve the matrix just after.

Issue

Please open issues if you encounter any problem.

License

The library is released under the MIT license. See LICENSE file.

About

Go implementation of the LAPJV algorithm

Topics

Resources

Stars

51 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages