#### D.15.14.21 projectLattice

Procedure from library `multigrading.lib` (see multigrading_lib).

Usage:
  projectLattice(B); intmat B

Purpose:
  A set of vectors in ZZ^m is given as the columns of B. Then this function provides a linear map ZZ^m --> ZZ^n having the primitive span of B its kernel.

Returns:
  intmat

Example:

    LIB "multigrading.lib";
    intmat B[4][2] =
    1,5,
    2,6,
    3,7,
    4,8;
    // should result in a (2x4)-matrix such that the corresponding lattice is created by
    // [-1, 2], [-2, 3], [-1, 0] and [0, 1]
    print(projectLattice(B));
    ==>     -1     2    -1     0
    ==>      2    -3     0     1
    // another example
    intmat BB[4][2] =
    1,0,
    0,1,
    0,0,
    0,0;
    // should result in a (2x4)-matrix such that the corresponding lattice is created by
    // [0,0],[0,0],[1,0],[0,1]
    print(projectLattice(BB));
    ==>      0     0     1     0
    ==>      0     0     0     1
    // another example
    intmat BBB[3][4] =
    1,0,1,2,
    1,1,0,0,
    3,0,0,3;
    // should result in the (1x3)-matrix that consists of just zeros
    print(projectLattice(BBB));
    ==>      0     0     0

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