Semantic Graph — Visual Examination Report

Generated 2026-06-13 23:38 UTC · theme: default-dark · 9 expressions
Linear Algebra (9 expressions)
linalg_matrix_product
$$C = A B$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  C["$C$"]:::scalar
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  B["$B$"]:::scalar
  C --> __equals_1
  A --> __multiply_2
  B --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
C = A B
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "C = A B",
      "chartScript": {
        "script": "-A*B + C",
        "variables": [
          "A",
          "B",
          "C"
        ]
      }
    },
    {
      "id": "C",
      "type": "scalar",
      "latex": "C",
      "subexpr": "C",
      "chartScript": {
        "script": "C",
        "variables": [
          "C"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A B",
      "chartScript": {
        "script": "A*B",
        "variables": [
          "A",
          "B"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "B",
      "type": "scalar",
      "latex": "B",
      "subexpr": "B",
      "chartScript": {
        "script": "B",
        "variables": [
          "B"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "C",
      "to": "__equals_1"
    },
    {
      "from": "A",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "B",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  C["$C$"]:::scalar
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  B["$B$"]:::scalar
  C --> __equals_1
  A --> __multiply_2
  B --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_determinant
$$\det(A) = ad - bc$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __det_2{{"$\det(\cdot)$"}}:::function
  A["$A$"]:::scalar
  __add_3(("$+$")):::operator
  __multiply_4(("$\times$")):::operator
  a["$a$"]:::scalar
  d["$d$"]:::scalar
  __negation_5@{ shape: "flip-tri", label: "$-$" }
  __multiply_6(("$\times$")):::operator
  b["$b$"]:::scalar
  c["$c$"]:::scalar
  class __negation_5 operator
  A --> __det_2
  __det_2 --> __equals_1
  a --> __multiply_4
  d --> __multiply_4
  __multiply_4 --> __add_3
  b --> __multiply_6
  c --> __multiply_6
  __multiply_6 --> __negation_5
  __negation_5 --> __add_3
  __add_3 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#ef5350,stroke-width:3px
  linkStyle 7 stroke:#aaa,stroke-width:2px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
\det(A) = ad - bc
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "\\det(A) = ad - bc",
      "chartScript": {
        "script": "-a*d + b*c + det(A)",
        "variables": [
          "A",
          "a",
          "b",
          "c",
          "d"
        ]
      }
    },
    {
      "id": "__det_2",
      "type": "function",
      "latex": "\\det",
      "op": "det",
      "subexpr": "\\operatorname{det}{\\left(A \\right)}",
      "chartScript": {
        "script": "A*de*operatorname*t",
        "variables": [
          "A",
          "de",
          "operatorname",
          "t"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "__add_3",
      "type": "operator",
      "op": "add",
      "subexpr": "d a - b c",
      "chartScript": {
        "script": "-b*c + da",
        "variables": [
          "b",
          "c",
          "da"
        ]
      }
    },
    {
      "id": "__multiply_4",
      "type": "operator",
      "op": "multiply",
      "subexpr": "d a",
      "chartScript": {
        "script": "da",
        "variables": [
          "da"
        ]
      }
    },
    {
      "id": "a",
      "type": "scalar",
      "latex": "a",
      "subexpr": "a",
      "chartScript": {
        "script": "a",
        "variables": [
          "a"
        ]
      }
    },
    {
      "id": "d",
      "type": "scalar",
      "latex": "d",
      "subexpr": "d",
      "chartScript": {
        "script": "d",
        "variables": [
          "d"
        ]
      }
    },
    {
      "id": "__negation_5",
      "type": "operator",
      "op": "negation",
      "subexpr": "-b c",
      "chartScript": {
        "script": "-b*c",
        "variables": [
          "b",
          "c"
        ]
      }
    },
    {
      "id": "__multiply_6",
      "type": "operator",
      "op": "multiply",
      "subexpr": "b c",
      "chartScript": {
        "script": "b*c",
        "variables": [
          "b",
          "c"
        ]
      }
    },
    {
      "id": "b",
      "type": "scalar",
      "latex": "b",
      "subexpr": "b",
      "chartScript": {
        "script": "b",
        "variables": [
          "b"
        ]
      }
    },
    {
      "id": "c",
      "type": "scalar",
      "latex": "c",
      "subexpr": "c",
      "chartScript": {
        "script": "c",
        "variables": [
          "c"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__det_2"
    },
    {
      "from": "__det_2",
      "to": "__equals_1"
    },
    {
      "from": "a",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "d",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_4",
      "to": "__add_3"
    },
    {
      "from": "b",
      "to": "__multiply_6",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "c",
      "to": "__multiply_6",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_6",
      "to": "__negation_5"
    },
    {
      "from": "__negation_5",
      "to": "__add_3"
    },
    {
      "from": "__add_3",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __det_2{{"$\det(\cdot)$"}}:::function
  A["$A$"]:::scalar
  __add_3(("$+$")):::operator
  __multiply_4(("$\times$")):::operator
  a["$a$"]:::scalar
  d["$d$"]:::scalar
  __negation_5@{ shape: "flip-tri", label: "$-$" }
  __multiply_6(("$\times$")):::operator
  b["$b$"]:::scalar
  c["$c$"]:::scalar
  class __negation_5 operator
  A --> __det_2
  __det_2 --> __equals_1
  a --> __multiply_4
  d --> __multiply_4
  __multiply_4 --> __add_3
  b --> __multiply_6
  c --> __multiply_6
  __multiply_6 --> __negation_5
  __negation_5 --> __add_3
  __add_3 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#ef5350,stroke-width:3px
  linkStyle 7 stroke:#aaa,stroke-width:2px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_eigenvalue
$$A \vec{v} = \lambda \vec{v}$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  v["$\vec{v}$"]:::vector
  __multiply_3(("$\times$")):::operator
  lambda["$\lambda$"]:::scalar
  A --> __multiply_2
  v --> __multiply_2
  __multiply_2 --> __equals_1
  lambda --> __multiply_3
  v --> __multiply_3
  __multiply_3 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#ef5350,stroke-width:3px
  linkStyle 5 stroke:#aaa,stroke-width:2px
A \vec{v} = \lambda \vec{v}
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "A \\vec{v} = \\lambda \\vec{v}",
      "chartScript": {
        "script": "A*v*vec - lambda*v*vec",
        "variables": [
          "A",
          "lambda",
          "v",
          "vec"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A \\vec{v}",
      "chartScript": {
        "script": "A*v*vec",
        "variables": [
          "A",
          "v",
          "vec"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "v",
      "type": "vector",
      "latex": "\\vec{v}",
      "subexpr": "\\vec{v}",
      "chartScript": {
        "script": "v*vec",
        "variables": [
          "v",
          "vec"
        ]
      }
    },
    {
      "id": "__multiply_3",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\vec{v} \\lambda",
      "chartScript": {
        "script": "lambda*v*vec",
        "variables": [
          "lambda",
          "v",
          "vec"
        ]
      }
    },
    {
      "id": "lambda",
      "type": "scalar",
      "latex": "\\lambda",
      "subexpr": "\\lambda",
      "chartScript": {
        "script": "lambda",
        "variables": [
          "lambda"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "v",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    },
    {
      "from": "lambda",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "v",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_3",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  v["$\vec{v}$"]:::vector
  __multiply_3(("$\times$")):::operator
  lambda["$\lambda$"]:::scalar
  A --> __multiply_2
  v --> __multiply_2
  __multiply_2 --> __equals_1
  lambda --> __multiply_3
  v --> __multiply_3
  __multiply_3 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#ef5350,stroke-width:3px
  linkStyle 5 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_inverse
$$A A^{-1} = I$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  __power_3(("$\dfrac{1}{(\cdot)}$")):::operator
  I["$I$"]:::scalar
  A --> __multiply_2
  A --> __power_3
  __power_3 -.-> __multiply_2
  __multiply_2 --> __equals_1
  I --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#42a5f5,stroke-width:1px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
A A^{-1} = I
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "A A^{-1} = I",
      "chartScript": {
        "script": "1 - I",
        "variables": [
          "I"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A \\frac{1}{A}",
      "chartScript": {
        "script": "1",
        "variables": []
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "__power_3",
      "type": "operator",
      "latex": "\\dfrac{1}{(\\cdot)}",
      "op": "power",
      "exponent": "-1",
      "subexpr": "\\frac{1}{A}",
      "chartScript": {
        "script": "1/A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "I",
      "type": "scalar",
      "latex": "I",
      "subexpr": "I",
      "chartScript": {
        "script": "I",
        "variables": [
          "I"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "A",
      "to": "__power_3"
    },
    {
      "from": "__power_3",
      "to": "__multiply_2"
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    },
    {
      "from": "I",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  A["$A$"]:::scalar
  __power_3(("$\dfrac{1}{(\cdot)}$")):::operator
  I["$I$"]:::scalar
  A --> __multiply_2
  A --> __power_3
  __power_3 -.-> __multiply_2
  __multiply_2 --> __equals_1
  I --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#42a5f5,stroke-width:1px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_transpose
$$(AB)^T = B^T A^T$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __power_2(("$(\cdot)^{\cdot}$")):::operator
  __multiply_3(("$\times$")):::operator
  A["$A$"]:::scalar
  B["$B$"]:::scalar
  T["$T$"]:::scalar
  __multiply_4(("$\times$")):::operator
  __power_5(("$(\cdot)^{\cdot}$")):::operator
  __power_6(("$(\cdot)^{\cdot}$")):::operator
  A --> __multiply_3
  B --> __multiply_3
  __multiply_3 --> __power_2
  T -->|exp| __power_2
  __power_2 --> __equals_1
  B --> __power_5
  T -->|exp| __power_5
  __power_5 --> __multiply_4
  A --> __power_6
  T -->|exp| __power_6
  __power_6 --> __multiply_4
  __multiply_4 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#ef5350,stroke-width:3px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#aaa,stroke-width:2px
(AB)^T = B^T A^T
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "(AB)^T = B^T A^T",
      "chartScript": {
        "script": "-pow(A, T)*pow(B, T) + pow(A*B, T)",
        "variables": [
          "A",
          "B",
          "T"
        ]
      }
    },
    {
      "id": "__power_2",
      "type": "operator",
      "op": "power",
      "subexpr": "\\left(A B\\right)^{T}",
      "chartScript": {
        "script": "pow(A*B, T)",
        "variables": [
          "A",
          "B",
          "T"
        ]
      }
    },
    {
      "id": "__multiply_3",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A B",
      "chartScript": {
        "script": "A*B",
        "variables": [
          "A",
          "B"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "B",
      "type": "scalar",
      "latex": "B",
      "subexpr": "B",
      "chartScript": {
        "script": "B",
        "variables": [
          "B"
        ]
      }
    },
    {
      "id": "T",
      "type": "scalar",
      "latex": "T",
      "subexpr": "T",
      "chartScript": {
        "script": "T",
        "variables": [
          "T"
        ]
      }
    },
    {
      "id": "__multiply_4",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A^{T} B^{T}",
      "chartScript": {
        "script": "pow(A, T)*pow(B, T)",
        "variables": [
          "A",
          "B",
          "T"
        ]
      }
    },
    {
      "id": "__power_5",
      "type": "operator",
      "op": "power",
      "subexpr": "B^{T}",
      "chartScript": {
        "script": "pow(B, T)",
        "variables": [
          "B",
          "T"
        ]
      }
    },
    {
      "id": "__power_6",
      "type": "operator",
      "op": "power",
      "subexpr": "A^{T}",
      "chartScript": {
        "script": "pow(A, T)",
        "variables": [
          "A",
          "T"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "B",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_3",
      "to": "__power_2"
    },
    {
      "from": "T",
      "to": "__power_2",
      "role": "exp"
    },
    {
      "from": "__power_2",
      "to": "__equals_1"
    },
    {
      "from": "B",
      "to": "__power_5"
    },
    {
      "from": "T",
      "to": "__power_5",
      "role": "exp"
    },
    {
      "from": "__power_5",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "A",
      "to": "__power_6"
    },
    {
      "from": "T",
      "to": "__power_6",
      "role": "exp"
    },
    {
      "from": "__power_6",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_4",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __power_2(("$(\cdot)^{\cdot}$")):::operator
  __multiply_3(("$\times$")):::operator
  A["$A$"]:::scalar
  B["$B$"]:::scalar
  T["$T$"]:::scalar
  __multiply_4(("$\times$")):::operator
  __power_5(("$(\cdot)^{\cdot}$")):::operator
  __power_6(("$(\cdot)^{\cdot}$")):::operator
  A --> __multiply_3
  B --> __multiply_3
  __multiply_3 --> __power_2
  T -->|exp| __power_2
  __power_2 --> __equals_1
  B --> __power_5
  T -->|exp| __power_5
  __power_5 --> __multiply_4
  A --> __power_6
  T -->|exp| __power_6
  __power_6 --> __multiply_4
  __multiply_4 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#ef5350,stroke-width:3px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_characteristic
$$\det(A - \lambda I) = 0$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __det_2{{"$\det(\cdot)$"}}:::function
  __add_3(("$+$")):::operator
  A["$A$"]:::scalar
  __negation_4@{ shape: "flip-tri", label: "$-$" }
  __multiply_5(("$\times$")):::operator
  lambda["$\lambda$"]:::scalar
  I["$I$"]:::scalar
  __num_6["$0$"]:::number
  class __negation_4 operator
  A --> __add_3
  lambda --> __multiply_5
  I --> __multiply_5
  __multiply_5 --> __negation_4
  __negation_4 --> __add_3
  __add_3 --> __det_2
  __det_2 --> __equals_1
  __num_6 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#aaa,stroke-width:2px
\det(A - \lambda I) = 0
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "\\det(A - \\lambda I) = 0",
      "chartScript": {
        "script": "det(A - I*lambda)",
        "variables": [
          "A",
          "I",
          "lambda"
        ]
      }
    },
    {
      "id": "__det_2",
      "type": "function",
      "latex": "\\det",
      "op": "det",
      "subexpr": "\\operatorname{det}{\\left(A - I \\lambda \\right)}",
      "chartScript": {
        "script": "de*operatorname*t*(A - I*lambda)",
        "variables": [
          "A",
          "I",
          "de",
          "lambda",
          "operatorname",
          "t"
        ]
      }
    },
    {
      "id": "__add_3",
      "type": "operator",
      "op": "add",
      "subexpr": "A - \\lambda I",
      "chartScript": {
        "script": "A - I*lambda",
        "variables": [
          "A",
          "I",
          "lambda"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "__negation_4",
      "type": "operator",
      "op": "negation",
      "subexpr": "-\\lambda I",
      "chartScript": {
        "script": "-I*lambda",
        "variables": [
          "I",
          "lambda"
        ]
      }
    },
    {
      "id": "__multiply_5",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\lambda I",
      "chartScript": {
        "script": "I*lambda",
        "variables": [
          "I",
          "lambda"
        ]
      }
    },
    {
      "id": "lambda",
      "type": "scalar",
      "latex": "\\lambda",
      "subexpr": "\\lambda",
      "chartScript": {
        "script": "lambda",
        "variables": [
          "lambda"
        ]
      }
    },
    {
      "id": "I",
      "type": "scalar",
      "latex": "I",
      "subexpr": "I",
      "chartScript": {
        "script": "I",
        "variables": [
          "I"
        ]
      }
    },
    {
      "id": "__num_6",
      "type": "number",
      "label": "0",
      "subexpr": "0",
      "chartScript": {
        "script": "0",
        "variables": []
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__add_3"
    },
    {
      "from": "lambda",
      "to": "__multiply_5",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "I",
      "to": "__multiply_5",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_5",
      "to": "__negation_4"
    },
    {
      "from": "__negation_4",
      "to": "__add_3"
    },
    {
      "from": "__add_3",
      "to": "__det_2"
    },
    {
      "from": "__det_2",
      "to": "__equals_1"
    },
    {
      "from": "__num_6",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __det_2{{"$\det(\cdot)$"}}:::function
  __add_3(("$+$")):::operator
  A["$A$"]:::scalar
  __negation_4@{ shape: "flip-tri", label: "$-$" }
  __multiply_5(("$\times$")):::operator
  lambda["$\lambda$"]:::scalar
  I["$I$"]:::scalar
  __num_6["$0$"]:::number
  class __negation_4 operator
  A --> __add_3
  lambda --> __multiply_5
  I --> __multiply_5
  __multiply_5 --> __negation_4
  __negation_4 --> __add_3
  __add_3 --> __det_2
  __det_2 --> __equals_1
  __num_6 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_svd
$$A = U \Sigma V^T$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  A["$A$"]:::scalar
  __multiply_2(("$\times$")):::operator
  U["$U$"]:::scalar
  __multiply_3(("$\times$")):::operator
  Sigma["$\Sigma$"]:::scalar
  __power_4(("$(\cdot)^{\cdot}$")):::operator
  V["$V$"]:::scalar
  T["$T$"]:::scalar
  A --> __equals_1
  U --> __multiply_2
  Sigma --> __multiply_3
  V --> __power_4
  T -->|exp| __power_4
  __power_4 --> __multiply_3
  __multiply_3 --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#ef5350,stroke-width:3px
  linkStyle 7 stroke:#aaa,stroke-width:2px
A = U \Sigma V^T
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "A = U \\Sigma V^T",
      "chartScript": {
        "script": "A - Sigma*U*pow(V, T)",
        "variables": [
          "A",
          "Sigma",
          "T",
          "U",
          "V"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "U \\Sigma V^{T}",
      "chartScript": {
        "script": "Sigma*U*pow(V, T)",
        "variables": [
          "Sigma",
          "T",
          "U",
          "V"
        ]
      }
    },
    {
      "id": "U",
      "type": "scalar",
      "latex": "U",
      "subexpr": "U",
      "chartScript": {
        "script": "U",
        "variables": [
          "U"
        ]
      }
    },
    {
      "id": "__multiply_3",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\Sigma V^{T}",
      "chartScript": {
        "script": "Sigma*pow(V, T)",
        "variables": [
          "Sigma",
          "T",
          "V"
        ]
      }
    },
    {
      "id": "Sigma",
      "type": "scalar",
      "latex": "\\Sigma",
      "subexpr": "\\Sigma",
      "chartScript": {
        "script": "Sigma",
        "variables": [
          "Sigma"
        ]
      }
    },
    {
      "id": "__power_4",
      "type": "operator",
      "op": "power",
      "subexpr": "V^{T}",
      "chartScript": {
        "script": "pow(V, T)",
        "variables": [
          "T",
          "V"
        ]
      }
    },
    {
      "id": "V",
      "type": "scalar",
      "latex": "V",
      "subexpr": "V",
      "chartScript": {
        "script": "V",
        "variables": [
          "V"
        ]
      }
    },
    {
      "id": "T",
      "type": "scalar",
      "latex": "T",
      "subexpr": "T",
      "chartScript": {
        "script": "T",
        "variables": [
          "T"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "A",
      "to": "__equals_1"
    },
    {
      "from": "U",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "Sigma",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "V",
      "to": "__power_4"
    },
    {
      "from": "T",
      "to": "__power_4",
      "role": "exp"
    },
    {
      "from": "__power_4",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_3",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  A["$A$"]:::scalar
  __multiply_2(("$\times$")):::operator
  U["$U$"]:::scalar
  __multiply_3(("$\times$")):::operator
  Sigma["$\Sigma$"]:::scalar
  __power_4(("$(\cdot)^{\cdot}$")):::operator
  V["$V$"]:::scalar
  T["$T$"]:::scalar
  A --> __equals_1
  U --> __multiply_2
  Sigma --> __multiply_3
  V --> __power_4
  T -->|exp| __power_4
  __power_4 --> __multiply_3
  __multiply_3 --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#ef5350,stroke-width:3px
  linkStyle 3 stroke:#aaa,stroke-width:2px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#ef5350,stroke-width:3px
  linkStyle 7 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_projection
$$P = A(A^T A)^{-1} A^T$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  P["$P$"]:::scalar
  __multiply_2(("$\times$")):::operator
  __power_3(("$\dfrac{1}{(\cdot)}$")):::operator
  __A_4{{"$A(\cdot)$"}}:::function
  __multiply_5(("$\times$")):::operator
  __power_6(("$(\cdot)^{\cdot}$")):::operator
  A["$A$"]:::scalar
  T["$T$"]:::scalar
  __power_7(("$(\cdot)^{\cdot}$")):::operator
  P --> __equals_1
  A --> __power_6
  T -->|exp| __power_6
  __power_6 --> __multiply_5
  A --> __multiply_5
  __multiply_5 --> __A_4
  __A_4 --> __power_3
  __power_3 -.-> __multiply_2
  A --> __power_7
  T -->|exp| __power_7
  __power_7 --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#ef5350,stroke-width:3px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#42a5f5,stroke-width:1px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#aaa,stroke-width:2px
P = A(A^T A)^{-1} A^T
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "P = A(A^T A)^{-1} A^T",
      "chartScript": {
        "script": "-pow(A, T)/A(A*A**T) + P",
        "variables": [
          "A",
          "P",
          "T"
        ]
      }
    },
    {
      "id": "P",
      "type": "scalar",
      "latex": "P",
      "subexpr": "P",
      "chartScript": {
        "script": "P",
        "variables": [
          "P"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A^{T} \\frac{1}{A{\\left(A A^{T} \\right)}}",
      "chartScript": {
        "script": "pow(A, -2)",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "__power_3",
      "type": "operator",
      "latex": "\\dfrac{1}{(\\cdot)}",
      "op": "power",
      "exponent": "-1",
      "subexpr": "\\frac{1}{A{\\left(A A^{T} \\right)}}",
      "chartScript": {
        "script": "pow(A, -T)/pow(A, 2)",
        "variables": [
          "A",
          "T"
        ]
      }
    },
    {
      "id": "__A_4",
      "type": "function",
      "op": "A",
      "subexpr": "A{\\left(A A^{T} \\right)}",
      "chartScript": {
        "script": "pow(A, 2)*pow(A, T)",
        "variables": [
          "A",
          "T"
        ]
      }
    },
    {
      "id": "__multiply_5",
      "type": "operator",
      "op": "multiply",
      "subexpr": "A^{T} A",
      "chartScript": {
        "script": "A*pow(A, T)",
        "variables": [
          "A",
          "T"
        ]
      }
    },
    {
      "id": "__power_6",
      "type": "operator",
      "op": "power",
      "subexpr": "A^{T}",
      "chartScript": {
        "script": "pow(A, T)",
        "variables": [
          "A",
          "T"
        ]
      }
    },
    {
      "id": "A",
      "type": "scalar",
      "latex": "A",
      "subexpr": "A",
      "chartScript": {
        "script": "A",
        "variables": [
          "A"
        ]
      }
    },
    {
      "id": "T",
      "type": "scalar",
      "latex": "T",
      "subexpr": "T",
      "chartScript": {
        "script": "T",
        "variables": [
          "T"
        ]
      }
    },
    {
      "id": "__power_7",
      "type": "operator",
      "op": "power",
      "subexpr": "A^{T}",
      "chartScript": {
        "script": "pow(A, T)",
        "variables": [
          "A",
          "T"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "P",
      "to": "__equals_1"
    },
    {
      "from": "A",
      "to": "__power_6"
    },
    {
      "from": "T",
      "to": "__power_6",
      "role": "exp"
    },
    {
      "from": "__power_6",
      "to": "__multiply_5",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "A",
      "to": "__multiply_5",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_5",
      "to": "__A_4"
    },
    {
      "from": "__A_4",
      "to": "__power_3"
    },
    {
      "from": "__power_3",
      "to": "__multiply_2"
    },
    {
      "from": "A",
      "to": "__power_7"
    },
    {
      "from": "T",
      "to": "__power_7",
      "role": "exp"
    },
    {
      "from": "__power_7",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  P["$P$"]:::scalar
  __multiply_2(("$\times$")):::operator
  __power_3(("$\dfrac{1}{(\cdot)}$")):::operator
  __A_4{{"$A(\cdot)$"}}:::function
  __multiply_5(("$\times$")):::operator
  __power_6(("$(\cdot)^{\cdot}$")):::operator
  A["$A$"]:::scalar
  T["$T$"]:::scalar
  __power_7(("$(\cdot)^{\cdot}$")):::operator
  P --> __equals_1
  A --> __power_6
  T -->|exp| __power_6
  __power_6 --> __multiply_5
  A --> __multiply_5
  __multiply_5 --> __A_4
  __A_4 --> __power_3
  __power_3 -.-> __multiply_2
  A --> __power_7
  T -->|exp| __power_7
  __power_7 --> __multiply_2
  __multiply_2 --> __equals_1
  linkStyle 0 stroke:#aaa,stroke-width:2px
  linkStyle 1 stroke:#aaa,stroke-width:2px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#ef5350,stroke-width:3px
  linkStyle 5 stroke:#aaa,stroke-width:2px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#42a5f5,stroke-width:1px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#aaa,stroke-width:2px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#aaa,stroke-width:2px
Click D3 to render
linalg_cross_product
$$\vec{a} \times \vec{b} = \hat{n} |a||b| \sin\theta$$
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  a["$\vec{a}$"]:::vector
  b["$\vec{b}$"]:::vector
  __multiply_3(("$\times$")):::operator
  n["$\hat{n}$"]:::scalar
  __multiply_4(("$\times$")):::operator
  __abs_5{{"$|\cdot|$"}}:::function
  __multiply_6(("$\times$")):::operator
  __abs_7{{"$|\cdot|$"}}:::function
  __sin_8{{"$\sin(\cdot)$"}}:::function
  theta["$\theta$"]:::scalar
  a --> __multiply_2
  b --> __multiply_2
  __multiply_2 --> __equals_1
  n --> __multiply_3
  a --> __abs_5
  __abs_5 --> __multiply_4
  b --> __abs_7
  __abs_7 --> __multiply_6
  theta --> __sin_8
  __sin_8 --> __multiply_6
  __multiply_6 --> __multiply_4
  __multiply_4 --> __multiply_3
  __multiply_3 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#ef5350,stroke-width:3px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#ef5350,stroke-width:3px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#ef5350,stroke-width:3px
  linkStyle 12 stroke:#aaa,stroke-width:2px
\vec{a} \times \vec{b} = \hat{n} |a||b| \sin\theta
Semantic Graph JSON
{
  "nodes": [
    {
      "id": "__equals_1",
      "type": "relation",
      "op": "equals",
      "subexpr": "\\vec{a} \\times \\vec{b} = \\hat{n} |\\vec{a}||\\vec{b}| \\sin\\theta",
      "chartScript": {
        "script": "a*b*pow(vec, 2) - hat*n*sin(theta)*abs(a*vec)*abs(b*vec)",
        "variables": [
          "a",
          "b",
          "hat",
          "n",
          "theta",
          "vec"
        ]
      }
    },
    {
      "id": "__multiply_2",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\vec{a} \\vec{b}",
      "chartScript": {
        "script": "a*b*pow(vec, 2)",
        "variables": [
          "a",
          "b",
          "vec"
        ]
      }
    },
    {
      "id": "a",
      "type": "vector",
      "latex": "\\vec{a}",
      "subexpr": "\\vec{a}",
      "chartScript": {
        "script": "a*vec",
        "variables": [
          "a",
          "vec"
        ]
      }
    },
    {
      "id": "b",
      "type": "vector",
      "latex": "\\vec{b}",
      "subexpr": "\\vec{b}",
      "chartScript": {
        "script": "b*vec",
        "variables": [
          "b",
          "vec"
        ]
      }
    },
    {
      "id": "__multiply_3",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\hat{n} \\left|{\\vec{a}}\\right| \\left|{\\vec{b}}\\right| \\sin{\\left(\\theta \\right)}",
      "chartScript": {
        "script": "hat*n",
        "variables": [
          "hat",
          "n"
        ]
      }
    },
    {
      "id": "n",
      "type": "scalar",
      "latex": "\\hat{n}",
      "subexpr": "\\hat{n}",
      "chartScript": {
        "script": "hat*n",
        "variables": [
          "hat",
          "n"
        ]
      }
    },
    {
      "id": "__multiply_4",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\left|{\\vec{a}}\\right| \\left|{\\vec{b}}\\right| \\sin{\\left(\\theta \\right)}"
    },
    {
      "id": "__abs_5",
      "type": "function",
      "op": "abs",
      "subexpr": "\\left|{\\vec{a}}\\right|"
    },
    {
      "id": "__multiply_6",
      "type": "operator",
      "op": "multiply",
      "subexpr": "\\left|{\\vec{b}}\\right| \\sin{\\left(\\theta \\right)}"
    },
    {
      "id": "__abs_7",
      "type": "function",
      "op": "abs",
      "subexpr": "\\left|{\\vec{b}}\\right|"
    },
    {
      "id": "__sin_8",
      "type": "function",
      "latex": "\\sin",
      "op": "sin",
      "subexpr": "\\sin{\\left(\\theta \\right)}",
      "chartScript": {
        "script": "sin(theta)",
        "variables": [
          "theta"
        ]
      }
    },
    {
      "id": "theta",
      "type": "scalar",
      "latex": "\\theta",
      "subexpr": "\\theta",
      "chartScript": {
        "script": "theta",
        "variables": [
          "theta"
        ]
      }
    }
  ],
  "edges": [
    {
      "from": "a",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "b",
      "to": "__multiply_2",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_2",
      "to": "__equals_1"
    },
    {
      "from": "n",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "a",
      "to": "__abs_5"
    },
    {
      "from": "__abs_5",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "b",
      "to": "__abs_7"
    },
    {
      "from": "__abs_7",
      "to": "__multiply_6",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "theta",
      "to": "__sin_8"
    },
    {
      "from": "__sin_8",
      "to": "__multiply_6",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_6",
      "to": "__multiply_4",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_4",
      "to": "__multiply_3",
      "semantic": "direct",
      "weight": 1.0
    },
    {
      "from": "__multiply_3",
      "to": "__equals_1"
    }
  ],
  "classification": {
    "kind": "algebraic"
  }
}
Mermaid Script
flowchart RL
  classDef scalar fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef vector fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef constant fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef number fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef expression fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef text fill:#1b3a1e,stroke:#66bb6a,color:#c8e6c9,font-size:15px
  classDef operator fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef function fill:#1a2740,stroke:#42a5f5,color:#bbdefb,font-size:15px
  classDef relation fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef result fill:#332a0b,stroke:#ffa726,color:#ffe0b2,font-size:15px
  classDef annotation fill:#131a2c,stroke:#4a5580,color:#b0bcd0,font-size:15px
  __equals_1{"="}:::relation
  __multiply_2(("$\times$")):::operator
  a["$\vec{a}$"]:::vector
  b["$\vec{b}$"]:::vector
  __multiply_3(("$\times$")):::operator
  n["$\hat{n}$"]:::scalar
  __multiply_4(("$\times$")):::operator
  __abs_5{{"$|\cdot|$"}}:::function
  __multiply_6(("$\times$")):::operator
  __abs_7{{"$|\cdot|$"}}:::function
  __sin_8{{"$\sin(\cdot)$"}}:::function
  theta["$\theta$"]:::scalar
  a --> __multiply_2
  b --> __multiply_2
  __multiply_2 --> __equals_1
  n --> __multiply_3
  a --> __abs_5
  __abs_5 --> __multiply_4
  b --> __abs_7
  __abs_7 --> __multiply_6
  theta --> __sin_8
  __sin_8 --> __multiply_6
  __multiply_6 --> __multiply_4
  __multiply_4 --> __multiply_3
  __multiply_3 --> __equals_1
  linkStyle 0 stroke:#ef5350,stroke-width:3px
  linkStyle 1 stroke:#ef5350,stroke-width:3px
  linkStyle 2 stroke:#aaa,stroke-width:2px
  linkStyle 3 stroke:#ef5350,stroke-width:3px
  linkStyle 4 stroke:#aaa,stroke-width:2px
  linkStyle 5 stroke:#ef5350,stroke-width:3px
  linkStyle 6 stroke:#aaa,stroke-width:2px
  linkStyle 7 stroke:#ef5350,stroke-width:3px
  linkStyle 8 stroke:#aaa,stroke-width:2px
  linkStyle 9 stroke:#ef5350,stroke-width:3px
  linkStyle 10 stroke:#ef5350,stroke-width:3px
  linkStyle 11 stroke:#ef5350,stroke-width:3px
  linkStyle 12 stroke:#aaa,stroke-width:2px
Click D3 to render
9 rendered, 0 errors out of 9 expressions