marqdo

How to write a linear-algebra formula documentok

features/07-linalg.mq.md

文档

la:ext/linalg/linalg.mq.md

Formula documents with ext/linalg

说明

Not stdlib. Install: marqdo ext add linalg (or build marqdo_plugin_linalg).

Idea: if the .mq.md runs and the asserted form matches, the identity holds under the library rules. Algebra reads like a lecture; factorize / lstsq / draw stay explicit calculation steps.

main

说明
Declare symbols in a table, multiply, transpose — T_ascii is one-step display (auto-simplify).
shapes =
@namerowscols
1A23
2B32
`env` = > la.declare table=`shapes`
A =Aaccess(env, "A")
B =Baccess(env, "B")
`P` = `A` * `B`
`t` = > `P`.T_ascii
> print text=t
  1. t == "B^T*A^T"
    > print text=formula-doc-ok
  2. else
    > print text=formula-doc-fail
> print text=see-examples-linalg-transpose
Functions
Variables
  • A matrix
    _typematrix
    asciiA
    cols3
    kindsymbol
    latexA
    nameA
    …
  • B matrix
    _typematrix
    asciiB
    cols2
    kindsymbol
    latexB
    nameB
    …
  • P matrix
    _typematrix
    asciiA*B
    factorsList(2)
    kindmul
    latexAB
    shapeList(2)
  • description text
    ext/linalg formula-doc — declare, infix, run-implies-correct
  • env matrix_env
    AMap(8)
    BMap(8)
    _typematrix_env
  • markup text
    occlusion
  • shapes list · 2
    #namerowscols
    1A23
    2B32
  • t text
    B^T*A^T
  • title text
    How to write a linear-algebra formula document
可执行知识(辅助)

运行与结果

B^T*A^T formula-doc-ok see-examples-linalg-transpose
完整源码
---
markup: occlusion
title: How to write a linear-algebra formula document
description: ext/linalg formula-doc — declare, infix, run-implies-correct
import:
  la: ext/linalg/linalg.mq.md
---

# Formula documents with ext/linalg

Not stdlib. Install: `marqdo ext add linalg` (or build `marqdo_plugin_linalg`).

*Idea:* if the `.mq.md` runs and the asserted form matches, the identity holds under the library rules. Algebra reads like a lecture; `factorize` / `lstsq` / `draw` stay explicit calculation steps.

# main

Declare symbols in a table, multiply, transpose — `T_ascii` is one-step display (auto-simplify).

`shapes` =

| @ | name | rows | cols |
|---|------|------|------|
| 1 | A | 2 | 3 |
| 2 | B | 3 | 2 |

**`env` = > la.declare table=`shapes`**
**`A` = [A](access(env, "A"))**
**`B` = [B](access(env, "B"))**
**`P` = `A` * `B`**
**`t` = > `P`.T_ascii**
> print text=`t`
1. `t` == "B^T*A^T"
  > print text=formula-doc-ok
2. *
  > print text=formula-doc-fail

> print text=see-examples-linalg-transpose

Variable