### 7.8.8 ncgen

`Syntax:`
  `ncgen (` int_expression `)`
`Type:`
  poly
`Purpose:`
  returns the i-th free non-commutative generator of a free bimodule.
`Note:`
  `ncgen` in bimodules is used together with the commutative `gen`, which encodes the component or the position in a vector.
`Example:`

        LIB"freegb.lib";
        ring r= 0,(x,y),dp;
        ring R = freeAlgebra(r,4,3); // R supports free bimodule up to rank 3
        typeof(ncgen(2));
      ==> poly
        vector v = [ncgen(1)*x, x*ncgen(2), y*ncgen(3)*x];
        v;
      ==> y*ncgen(3)*x*gen(3)+ncgen(1)*x*gen(1)+x*ncgen(2)*gen(2)
        print(v*x);
      ==> [ncgen(1)*x*x,x*ncgen(2)*x,y*ncgen(3)*x*x]
        print(x*v);
      ==> [x*ncgen(1)*x,x*x*ncgen(2),x*y*ncgen(3)*x]

See freeAlgebra (letterplace); module; vector.

User manual for Singular version 4.4.1, 2025, generated by texi2html.