{
  "slug": "adjacency-matrix-converter",
  "name": "gizza-ai/adjacency-matrix-converter",
  "version": "0.1.0",
  "title": "Adjacency Matrix Converter — Edge List ⇄ Matrix — gizza.ai",
  "description": "Convert a graph between edge list, adjacency matrix, and incidence matrix — directed or undirected, weighted or not. Free, private, runs in your browser.",
  "tags": [
    "adjacency matrix",
    "incidence matrix",
    "edge list",
    "graph converter",
    "directed graph",
    "weighted graph",
    "graph theory",
    "matrix"
  ],
  "category": "data",
  "urls": {
    "page": "https://gizza.ai/tools/adjacency-matrix-converter/",
    "markdown": "https://gizza.ai/tools/adjacency-matrix-converter/index.md",
    "descriptor": "https://gizza.ai/tools/adjacency-matrix-converter/tool.json",
    "deep_link_example": "https://gizza.ai/tools/adjacency-matrix-converter/?input=A%20B%0AB%20C%0AA%20C&from=auto&to=adjacency&directed=true&weighted=true&power=2"
  },
  "cli": "gizza tool adjacency-matrix-converter \"A B\nB C\nA C\"",
  "tool": {
    "description": "Convert a graph between an edge list, an adjacency matrix, an adjacency list, an incidence matrix, a degree matrix, and the graph Laplacian. Set from='edges' (default, one 'A B' edge per line, optional 3rd weight token) or from='adjacency' (a square numeric matrix with auto-detected label header). Set to='adjacency' (default), 'incidence' (vertices×edges; directed uses -1 for the tail and +1 for the head), 'edges', 'list' (adjacency list), 'degree' (diagonal degree matrix), or 'laplacian' (L=D-A, undirected only). Use directed=true so 'A B' is one-way, and weighted=true to read/emit edge weights (otherwise every edge is 1). Matrices are tab-separated with a label row and column.",
    "parameters": {
      "additionalProperties": false,
      "properties": {
        "directed": {
          "default": false,
          "type": "boolean"
        },
        "from": {
          "default": "auto",
          "enum": [
            "auto",
            "edges",
            "adjacency",
            "list",
            "incidence"
          ],
          "type": "string"
        },
        "input": {
          "type": "string"
        },
        "power": {
          "default": 2,
          "type": "integer"
        },
        "to": {
          "default": "adjacency",
          "enum": [
            "adjacency",
            "incidence",
            "edges",
            "list",
            "degree",
            "laplacian",
            "stats",
            "power"
          ],
          "type": "string"
        },
        "weighted": {
          "default": false,
          "type": "boolean"
        }
      },
      "required": [
        "input"
      ],
      "type": "object"
    }
  }
}