Comments (4)
@mikera Currently most of the algorithms are implemented with adjacency list, though this fact is abstracted away in the protocols. By representing we graphs as adjacency matrices we also might want to take advantage of the structure when it be efficient. Alternatively, if an instance of the graph is implemented as an adjacency matrix, it would makes sense to use some of the operations provided by core.matrix rather than have loom handle it.
In addition, may be we should consider making this dependency on core.matrix optional? I am also eager to to see loom extended to support operations on matrix representation of graphs.
Also, as part of some of the algorithms I have been adding, I would love to have core.matrix incorporated. That would help implement PageRank and Spectral analysis algorithms with fast matrix operations.
from loom.
I think it should be possible to have an optional loom.matrix
namespace that depends on core.matrix but doesn't have it as an explicit dependency in the project.clj. That way you don't have to have core.matrix
as a required dependency, but can still have the functionality available if people want it (they would need to add core.matrix
as a dependency manually of course...)
Alternatively, a separate repo / library which adds the matrix based functionality would be a possibility that has both loom and core.matrix as dependencies.
I've done a couple of demos with matrix representations of graphs, e.g. a quick pagerank demo:
from loom.
@mikera, I think your idea for making a separate loom.matrix library is excellent. That's what we've been doing for titanium and gorilla-repl integration.
This is very exciting, and I'm looking forward to seeing Loom represented in core.matrix!
from loom.
Please reopen the issue if there's anything else.
from loom.
Related Issues (20)
- Implement Edge fully HOT 5
- Loom incompatible with CLJS >= 1.9.854 HOT 3
- Make 1.0.1 release ? HOT 3
- Possible Clojurescript [any Long] issue HOT 2
- Graph visualization in the browser HOT 1
- bipartite-color fails for digraphs with nodes containing no outgoing edges
- java.lang.NoClassDefFoundError: loom/graph/Graph HOT 2
- connected-components should return a seq of (sub)graphs
- Wrong typehint for clojurescript
- maximal-cliques silently breaks on digraphs
- Link to FAQ doesn't work HOT 1
- How does the ancestry cache work?
- Graph transpose does not work correctly in ClojureScript
- loom.io/view logic errors HOT 1
- remove-nodes* for BasicEditableDigraph throws null exception in cljs HOT 1
- Time for a new release? HOT 5
- Building a graph with an empty map throws a nullpointer exception
- remove-nodes does not prune attributes HOT 1
- loom.io/view calls render-to-bytes incorrectly HOT 1
- Add mincost flow algorithm
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from loom.