Home Online Manual
Top
Back: preimageLattice
Forward: intersectLattices
FastBack:
FastForward:
Up: multigrading_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.17.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