A \(k\)-form is an alternating \(k\)-tensor.
Recall that a \(k\)-tensor is a multilinear map from \(V^k\) to
the reals, where \(V=R^n\) is a vector space. A multilinear
\(k\)-tensor \(T\) is alternating if it satisfies
$$T\left(v_1,\ldots,v_i,\ldots,v_j,\ldots,v_k\right)=
T\left(v_1,\ldots,v_j,\ldots,v_i,\ldots,v_k\right)
$$
Function kform_basis()
is a low-level helper function that
returns a matrix whose rows constitute a basis for the vector space
\(\Lambda^k(R^n)\) of \(k\)-tensors:
$$\phi=\sum_{1\leq i_1<\cdots<i_k\leq n}a_{i_1\ldots i_k}
dx_{i_1}\wedge\cdots\wedge dx_{i_k}
$$
and in fact
$$a_{i_1\ldots i_k}=\phi\left(\mathbf{e}_{i_1},\ldots,\mathbf{e}_{i_k}\right)
$$
where \(\mathbf{e}_j,1\leq j\leq k\) is a basis for
\(V\).
In the wedge package, \(k\)-forms are represented as sparse
arrays (spray
objects), but with a class of c("kform",
"spray")
. The constructor function (kform()
) ensures that rows
of the index matrix are strictly nonnegative integers, have no repeated
entries, and are strictly increasing.