CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.

| Download

GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it

Views: 418346
1
2
2 Functions
3
4
In this chapter we describe the functions offered by NormalizInterface. All
5
functions supplied by this package start with Nmz. For examples see the
6
chapter 'Examples'.
7
8
9
2.1 Create a NmzCone
10
11
To create a cone object use NmzCone.
12
13
2.1-1 NmzCone
14
15
NmzCone( list )  function
16
Returns: NmzCone
17
18
Creates a NmzCone. The list argument should contain an even number of
19
elements, alternating between a string and a integer matrix. The string has
20
to correspond to a Normaliz input type string and the following matrix will
21
be interpreted as input of that type.
22
23
Currently the following strings are recognized:
24
25
 integral_closure,
26
27
 polyhedron,
28
29
 normalization,
30
31
 polytope,
32
33
 rees_algebra,
34
35
 inequalities,
36
37
 strict_inequalities,
38
39
 signs,
40
41
 strict_signs,
42
43
 equations,
44
45
 congruences,
46
47
 inhom_inequalities,
48
49
 inhom_equations,
50
51
 inhom_congruences,
52
53
 dehomogenization,
54
55
 lattice_ideal,
56
57
 grading,
58
59
 excluded_faces,
60
61
 lattice,
62
63
 saturation,
64
65
 cone,
66
67
 offset,
68
69
 vertices,
70
71
 support_hyperplanes,
72
73
 cone_and_lattice,
74
75
 subspace.
76
77
See the Normaliz manual for a detailed description.
78
79
 Example 
80
gap> cone := NmzCone(["integral_closure",[[2,1],[1,3]]]);
81
<a Normaliz cone>
82

83
84
85
2.2 Use a NmzCone
86
87
2.2-1 NmzHasConeProperty
88
89
NmzHasConeProperty( cone, property )  function
90
Returns: whether the cone has already computed the given property
91
92
See NmzConeProperty (2.2-6) for a list of recognized properties.
93
94
 Example 
95
gap> NmzHasConeProperty(cone, "ExtremeRays");
96
false
97

98
99
2.2-2 NmzKnownConeProperties
100
101
NmzKnownConeProperties( cone )  function
102
Returns: a list of strings representing the known (computed) cone
103
properties
104
105
Given a Normaliz cone object, return a list of all properties already
106
computed for the cone.
107
108
 Example 
109
gap> NmzKnownConeProperties(cone);
110
[ "Generators", "OriginalMonoidGenerators", "Sublattice" ]
111

112
113
2.2-3 NmzSetVerboseDefault
114
115
NmzSetVerboseDefault( verboseFlag )  function
116
Returns: the previous verbosity
117
118
Set the global default verbosity state in libnormaliz. This will influence
119
all NmzCone created afterwards, but not any existing ones.
120
121
See also NmzSetVerbose (2.2-4)
122
123
2.2-4 NmzSetVerbose
124
125
NmzSetVerbose( cone, verboseFlag )  function
126
Returns: the previous verbosity
127
128
Set the verbosity state for a cone.
129
130
See also NmzSetVerboseDefault (2.2-3)
131
132
2.2-5 NmzCompute
133
134
NmzCompute( cone[, propnames] )  function
135
Returns: a boolean indicating success
136
137
Start computing properties of the given cone. The first parameter indicates
138
a cone object, the second parameter is either a single string, or a list of
139
strings, which indicate what should be computed.
140
141
The single parameter version is equivalent to NmzCone(cone,
142
["DefaultMode"]). See NmzConeProperty (2.2-6) for a list of recognized
143
properties.
144
145
 Example 
146
gap> NmzKnownConeProperties(cone);
147
[ "Generators", "OriginalMonoidGenerators", "Sublattice" ]
148
gap> NmzCompute(cone, ["SupportHyperplanes", "IsPointed"]);
149
true
150
gap> NmzKnownConeProperties(cone);
151
[ "Generators", "ExtremeRays", "SupportHyperplanes", "IsPointed",
152
 "IsDeg1ExtremeRays", "OriginalMonoidGenerators", "Sublattice",
153
 "MaximalSubspace" ]
154
gap> NmzCompute(cone);
155
true
156
gap> NmzKnownConeProperties(cone);
157
[ "Generators", "ExtremeRays", "SupportHyperplanes", "TriangulationSize",
158
 "TriangulationDetSum", "HilbertBasis", "IsPointed", "IsDeg1ExtremeRays",
159
 "IsIntegrallyClosed", "OriginalMonoidGenerators", "Sublattice",
160
 "ClassGroup", "MaximalSubspace"]
161

162
163
2.2-6 NmzConeProperty
164
165
NmzConeProperty( cone, property )  function
166
Returns: the result of the computation, type depends on the property
167
168
Triggers the computation of the property of the cone and returns the result.
169
If the property was already known, it is not recomputed. Currently the
170
following strings are recognized as properties:
171
172
 Generators see NmzGenerators (2.3-10),
173
174
 ExtremeRays see NmzExtremeRays (2.3-9),
175
176
 VerticesOfPolyhedron see NmzVerticesOfPolyhedron (2.3-38),
177
178
 SupportHyperplanes see NmzSupportHyperplanes (2.3-33),
179
180
 TriangulationSize see NmzTriangulationSize (2.3-36),
181
182
 TriangulationDetSum see NmzTriangulationDetSum (2.3-35),
183
184
 Triangulation see NmzTriangulation (2.3-34),
185
186
 Multiplicity see NmzMultiplicity (2.3-28),
187
188
 RecessionRank see NmzRecessionRank (2.3-31),
189
190
 AffineDim see NmzAffineDim (2.3-1),
191
192
 ModuleRank see NmzModuleRank (2.3-27),
193
194
 HilbertBasis see NmzHilbertBasis (2.3-13),
195
196
 ModuleGenerators see NmzModuleGenerators (2.3-25),
197
198
 Deg1Elements see NmzDeg1Elements (2.3-4),
199
200
 HilbertSeries see NmzHilbertSeries (2.3-15),
201
202
 HilbertQuasiPolynomial see NmzHilbertQuasiPolynomial (2.3-14),
203
204
 Grading see NmzGrading (2.3-12),
205
206
 IsPointed see NmzIsPointed (2.3-22),
207
208
 IsDeg1ExtremeRays see NmzIsDeg1ExtremeRays (2.3-17),
209
210
 IsDeg1HilbertBasis see NmzIsDeg1HilbertBasis (2.3-18),
211
212
 IsIntegrallyClosed see NmzIsIntegrallyClosed (2.3-21),
213
214
 OriginalMonoidGenerators see NmzOriginalMonoidGenerators (2.3-29),
215
216
 IsReesPrimary see NmzIsReesPrimary (2.3-23),
217
218
 ReesPrimaryMultiplicity see NmzReesPrimaryMultiplicity (2.3-32),
219
220
 ExcludedFaces see NmzExcludedFaces (2.3-8),
221
222
 Dehomogenization see NmzDehomogenization (2.3-5),
223
224
 InclusionExclusionData see NmzInclusionExclusionData (2.3-16),
225
226
 ClassGroup see NmzClassGroup (2.3-2),
227
228
 ModuleGeneratorsOverOriginalMonoid see
229
NmzModuleGeneratorsOverOriginalMonoid (2.3-26),
230
231
 Sublattice computes the efficient sublattice and returns a bool
232
signaling whether the computation was successful. Actual data
233
connected to it can be accessed by NmzRank (2.3-30), NmzEquations
234
(2.3-7), NmzCongruences (2.3-3), and NmzBasisChange (2.3-51).
235
236
Additionally also the following compute options are accepted as property.
237
They modify what and how should be computed, and return True after a
238
successful computation.
239
240
 Approximate approximate the rational polytope by an integral polytope,
241
currently only useful in combination with Deg1Elements.
242
243
 BottomDecomposition use the best possible triangulation (with respect
244
to the sum of determinants) using the given generators.
245
246
 DefaultMode try to compute what is possible and do not throw an
247
exception when something cannot be computed.
248
249
 DualModeactivates the dual algorithm for the computation of the
250
Hilbert basis and degree 1 elements. Includes HilbertBasis, unless
251
Deg1Elements is set. Often a good choice if you start from
252
constraints.
253
254
 KeepOrder forbids to reorder the generators. Blocks
255
BottomDecomposition.
256
257
All the properties above can be given to NmzCompute (2.2-5). There you can
258
combine different properties, e.g. give some properties that you would like
259
to know and add some compute options.
260
261
See the Normaliz manual for a detailed description.
262
263
2.2-7 NmzPrintConeProperties
264
265
NmzPrintConeProperties( cone )  function
266
267
Print an overview of all known properties of the given cone, as well as
268
their values.
269
270
271
2.3 Cone properties
272
273
2.3-1 NmzAffineDim
274
275
NmzAffineDim( cone )  function
276
Returns: the affine dimension
277
278
The affine dimension of the polyhedron in inhomogeneous computations. Its
279
computation is triggered if necessary.
280
281
This is an alias for NmzConeProperty( cone, "AffineDim" ); see
282
NmzConeProperty (2.2-6).
283
284
2.3-2 NmzClassGroup
285
286
NmzClassGroup( cone )  function
287
Returns: the class group in a special format
288
289
A normal affine monoid M has a well-defined divisor class group. It is
290
naturally isomorphic to the divisor class group of K[M] where K is a field
291
(or any unique factorization domain). We represent it as a vector where the
292
first entry is the rank. It is followed by sequence of pairs of entries n,m.
293
Such two entries represent a free cyclic summand (Z/nZ)^m. Not allowed in
294
inhomogeneous computations.
295
296
This is an alias for NmzConeProperty( cone, "ClassGroup" ); see
297
NmzConeProperty (2.2-6).
298
299
2.3-3 NmzCongruences
300
301
NmzCongruences( cone )  function
302
Returns: a matrix whose rows represent the congruences
303
304
The equations, congruences and support hyperplanes together describe the
305
lattice points of the cone.
306
307
This is part of the cone property Sublattice.
308
309
2.3-4 NmzDeg1Elements
310
311
NmzDeg1Elements( cone )  function
312
Returns: a matrix whose rows are the degree 1 elements
313
314
Requires the presence of a grading. Not allowed in inhomogeneous
315
computations.
316
317
This is an alias for NmzConeProperty( cone, "Deg1Elements" ); see
318
NmzConeProperty (2.2-6).
319
320
2.3-5 NmzDehomogenization
321
322
NmzDehomogenization( cone )  function
323
Returns: the dehomgenization vector
324
325
Only for inhomogeneous computations.
326
327
This is an alias for NmzConeProperty( cone, "Dehomogenization" ); see
328
NmzConeProperty (2.2-6).
329
330
2.3-6 NmzEmbeddingDimension
331
332
NmzEmbeddingDimension( cone )  function
333
Returns: the embedding dimension of the cone
334
335
The embedding dimension is the dimension of the space in which the
336
computation is done. It is the number of components of the output vectors.
337
This value is always known directly after the creation of the cone.
338
339
2.3-7 NmzEquations
340
341
NmzEquations( cone )  function
342
Returns: a matrix whose rows represent the equations
343
344
The equations cut out the linear space generated by the cone. The equations,
345
congruences and support hyperplanes together describe the lattice points of
346
the cone.
347
348
2.3-8 NmzExcludedFaces
349
350
NmzExcludedFaces( cone )  function
351
Returns: a matrix whose rows represent the excluded faces
352
353
This is an alias for NmzConeProperty( cone, "ExcludedFaces" ); see
354
NmzConeProperty (2.2-6).
355
356
2.3-9 NmzExtremeRays
357
358
NmzExtremeRays( cone )  function
359
Returns: a matrix whose rows are the extreme rays
360
361
This is an alias for NmzConeProperty( cone, "ExtremeRays" ); see
362
NmzConeProperty (2.2-6).
363
364
2.3-10 NmzGenerators
365
366
NmzGenerators( cone )  function
367
Returns: a matrix whose rows are the generators of cone
368
369
This is an alias for NmzConeProperty( cone, "Generators" ); see
370
NmzConeProperty (2.2-6).
371
372
2.3-11 NmzGeneratorOfInterior
373
374
NmzGeneratorOfInterior( cone )  function
375
Returns: a vector representing the generator of the interior of cone
376
377
If cone is Gorenstein, this function returns the generator of the interior
378
of cone. If cone is not Gorenstein, an error is raised.
379
380
2.3-12 NmzGrading
381
382
NmzGrading( cone )  function
383
Returns: the grading vector
384
385
This is an alias for NmzConeProperty( cone, "Grading" ); see NmzConeProperty
386
(2.2-6).
387
388
2.3-13 NmzHilbertBasis
389
390
NmzHilbertBasis( cone )  function
391
Returns: a matrix whose rows are the Hilbert basis elements
392
393
This is an alias for NmzConeProperty( cone, "HilbertBasis" ); see
394
NmzConeProperty (2.2-6).
395
396
2.3-14 NmzHilbertQuasiPolynomial
397
398
NmzHilbertQuasiPolynomial( cone )  function
399
Returns: the Hilbert function as a quasipolynomial
400
401
The Hilbert function counts the lattice points degreewise. The result is a
402
quasipolynomial Q, that is, a polynomial with periodic coefficients. It is
403
given as list of polynomials P_0, ..., P_(p-1) such that Q(i) = P_(i mod p)
404
(i).
405
406
This is an alias for NmzConeProperty( cone, "HilbertQuasiPolynomial" ); see
407
NmzConeProperty (2.2-6).
408
409
2.3-15 NmzHilbertSeries
410
411
NmzHilbertSeries( cone )  function
412
Returns: the Hilbert series as rational function
413
414
The result consists of a list with two entries. The first is the numerator
415
polynomial. In inhomogeneous computations this can also be a Laurent
416
polynomial. The second list entry represents the denominator. It is a list
417
of pairs [k_i, l_i]. Such a pair represents the factor (1-t^k_i)^l_i.
418
419
This is an alias for NmzConeProperty( cone, "HilbertSeries" ); see
420
NmzConeProperty (2.2-6).
421
422
2.3-16 NmzInclusionExclusionData
423
424
NmzInclusionExclusionData( cone )  function
425
Returns: inclusion-exclusion data
426
427
List of faces which are internally have been used in the inclusion-exclusion
428
scheme. Given as a list pairs. The first pair entry is a key of generators
429
contained in the face (compare also NmzTriangulation (2.3-34)) and the
430
multiplicity with which it was considered. Only available with excluded
431
faces or strict constraints as input.
432
433
This is an alias for NmzConeProperty( cone, "InclusionExclusionData" ); see
434
NmzConeProperty (2.2-6).
435
436
2.3-17 NmzIsDeg1ExtremeRays
437
438
NmzIsDeg1ExtremeRays( cone )  function
439
Returns: true if all extreme rays have degree 1; false otherwise
440
441
This is an alias for NmzConeProperty( cone, "IsDeg1ExtremeRays" ); see
442
NmzConeProperty (2.2-6).
443
444
2.3-18 NmzIsDeg1HilbertBasis
445
446
NmzIsDeg1HilbertBasis( cone )  function
447
Returns: true if all Hilbert basis elements have degree 1; false otherwise
448
449
This is an alias for NmzConeProperty( cone, "IsDeg1HilbertBasis" ); see
450
NmzConeProperty (2.2-6).
451
452
2.3-19 NmzIsGorenstein
453
454
NmzIsGorenstein( cone )  function
455
Returns: whether the cone is Gorenstein
456
457
Returns true if cone is Gorenstein, false otherwise.
458
459
2.3-20 NmzIsInhomogeneous
460
461
NmzIsInhomogeneous( cone )  function
462
Returns: whether the cone is inhomogeneous
463
464
This value is always known directly after the creation of the cone.
465
466
2.3-21 NmzIsIntegrallyClosed
467
468
NmzIsIntegrallyClosed( cone )  function
469
Returns: true if the cone is integrally closed; false otherwise
470
471
It is integrally closed when the Hilbert basis is a subset of the original
472
monoid generators. So it is only computable if we have original monoid
473
generators.
474
475
This is an alias for NmzConeProperty( cone, "IsIntegrallyClosed" ); see
476
NmzConeProperty (2.2-6).
477
478
2.3-22 NmzIsPointed
479
480
NmzIsPointed( cone )  function
481
Returns: true if the cone is pointed; false otherwise
482
483
This is an alias for NmzConeProperty( cone, "IsPointed" ); see
484
NmzConeProperty (2.2-6).
485
486
2.3-23 NmzIsReesPrimary
487
488
NmzIsReesPrimary( cone )  function
489
Returns: true if is the monomial ideal is primary to the irrelevant maximal
490
ideal, false otherwise
491
492
Only used with the input type rees_algebra.
493
494
This is an alias for NmzConeProperty( cone, "IsReesPrimary" ); see
495
NmzConeProperty (2.2-6).
496
497
2.3-24 NmzMaximalSubspace
498
499
NmzMaximalSubspace( cone )  function
500
Returns: a matrix whose rows generate the maximale linear subspace
501
502
This is an alias for NmzConeProperty( cone, "MaximalSubspace" ); see
503
NmzConeProperty (2.2-6).
504
505
2.3-25 NmzModuleGenerators
506
507
NmzModuleGenerators( cone )  function
508
Returns: a matrix whose rows are the module generators
509
510
This is an alias for NmzConeProperty( cone, "ModuleGenerators" ); see
511
NmzConeProperty (2.2-6).
512
513
2.3-26 NmzModuleGeneratorsOverOriginalMonoid
514
515
NmzModuleGeneratorsOverOriginalMonoid( cone )  function
516
Returns: a matrix whose rows are the module generators over the original
517
monoid
518
519
A minimal system of generators of the integral closure over the original
520
monoid. Requires the existence of original monoid generators. Not allowed in
521
inhomogeneous computations.
522
523
This is an alias for NmzConeProperty( cone,
524
"ModuleGeneratorsOverOriginalMonoid" ); see NmzConeProperty (2.2-6).
525
526
2.3-27 NmzModuleRank
527
528
NmzModuleRank( cone )  function
529
Returns: the rank of the module of lattice points in the polyhedron as a
530
module over the recession monoid
531
532
Only for inhomogeneous computations.
533
534
This is an alias for NmzConeProperty( cone, "ModuleRank" ); see
535
NmzConeProperty (2.2-6).
536
537
2.3-28 NmzMultiplicity
538
539
NmzMultiplicity( cone )  function
540
541
This is an alias for NmzConeProperty( cone, "Multiplicity" ); see
542
NmzConeProperty (2.2-6).
543
544
2.3-29 NmzOriginalMonoidGenerators
545
546
NmzOriginalMonoidGenerators( cone )  function
547
Returns: a matrix whose rows are the original monoid generators
548
549
This is an alias for NmzConeProperty( cone, "OriginalMonoidGenerators" );
550
see NmzConeProperty (2.2-6).
551
552
2.3-30 NmzRank
553
554
NmzRank( cone )  function
555
Returns: the rank of the cone
556
557
This value is the rank of the lattice generated by the lattice points of the
558
cone.
559
560
This is part of the cone property Sublattice.
561
562
2.3-31 NmzRecessionRank
563
564
NmzRecessionRank( cone )  function
565
Returns: the rank of the recession cone
566
567
Only for inhomogeneous computations.
568
569
This is an alias for NmzConeProperty( cone, "RecessionRank" ); see
570
NmzConeProperty (2.2-6).
571
572
2.3-32 NmzReesPrimaryMultiplicity
573
574
NmzReesPrimaryMultiplicity( cone )  function
575
576
the multiplicity of a monomial ideal, provided it is primary to the maximal
577
ideal generated by the indeterminates. Used only with the input type
578
rees_algebra.
579
580
This is an alias for NmzConeProperty( cone, "ReesPrimaryMultiplicity" ); see
581
NmzConeProperty (2.2-6).
582
583
2.3-33 NmzSupportHyperplanes
584
585
NmzSupportHyperplanes( cone )  function
586
Returns: a matrix whose rows represent the support hyperplanes
587
588
The equations cut out the linear space generated by the cone. The equations,
589
congruences and support hyperplanes together describe the lattice points of
590
the cone.
591
592
This is an alias for NmzConeProperty( cone, "SupportHyperplanes" ); see
593
NmzConeProperty (2.2-6).
594
595
2.3-34 NmzTriangulation
596
597
NmzTriangulation( cone )  function
598
Returns: the triangulation
599
600
This returns a list of the maximal simplicial cones in a triangulation,
601
i.e., a list of cones dividing the cone into simplicial cones. Each cone in
602
the list is represented by a pair. The first entry of such a pair is the key
603
of the simplex, i.e., a list of integers a_1,\dots,a_n referring to the
604
NmzGenerators (2.3-10) (counting from 0) which are used in this simplicial
605
cone. The second entry of each pair in the list is the absolute value of the
606
determinant of the generator matrix of the simplicial cone.
607
608
This is an alias for NmzConeProperty( cone, "Triangulation" ); see
609
NmzConeProperty (2.2-6).
610
611
2.3-35 NmzTriangulationDetSum
612
613
NmzTriangulationDetSum( cone )  function
614
Returns: sum of the absolute values of the determinants of the simplicial
615
cones in the used triangulation
616
617
This is an alias for NmzConeProperty( cone, "TriangulationDetSum" ); see
618
NmzConeProperty (2.2-6).
619
620
2.3-36 NmzTriangulationSize
621
622
NmzTriangulationSize( cone )  function
623
Returns: the number of simplicial cones in the used triangulation
624
625
This is an alias for NmzConeProperty( cone, "TriangulationSize" ); see
626
NmzConeProperty (2.2-6).
627
628
2.3-37 NmzVerticesFloat
629
630
NmzVerticesFloat( cone )  function
631
Returns: a matrix whose rows are the vertices of the polyhedron cone with
632
float coordinates
633
634
The rows of this matrix represent the vertices of cone, printed as floats
635
for better readability. The result might be inexact, and should therefore
636
not be used for computations.
637
638
2.3-38 NmzVerticesOfPolyhedron
639
640
NmzVerticesOfPolyhedron( cone )  function
641
Returns: a matrix whose rows are the vertices of the polyhedron
642
643
This is an alias for NmzConeProperty( cone, "VerticesOfPolyhedron" ); see
644
NmzConeProperty (2.2-6).
645
646
2.3-39 NmzConeDecomposition
647
648
NmzConeDecomposition( cone )  function
649
650
This is an alias for NmzConeProperty( cone, "ConeDecomposition" );
651
652
2.3-40 NmzEmbeddingDim
653
654
NmzEmbeddingDim( cone )  function
655
656
This is an alias for NmzConeProperty( cone, "EmbeddingDim" );
657
658
2.3-41 NmzExternalIndex
659
660
NmzExternalIndex( cone )  function
661
662
This is an alias for NmzConeProperty( cone, "ExternalIndex" );
663
664
2.3-42 NmzGradingDenom
665
666
NmzGradingDenom( cone )  function
667
668
This is an alias for NmzConeProperty( cone, "GradingDenom" );
669
670
2.3-43 NmzIntegerHull
671
672
NmzIntegerHull( cone )  function
673
674
This is an alias for NmzConeProperty( cone, "IntegerHull" );
675
676
2.3-44 NmzInternalIndex
677
678
NmzInternalIndex( cone )  function
679
680
This is an alias for NmzConeProperty( cone, "InternalIndex" );
681
682
2.3-45 NmzStanleyDec
683
684
NmzStanleyDec( cone )  function
685
686
This is an alias for NmzConeProperty( cone, "StanleyDec" );
687
688
2.3-46 NmzSublattice
689
690
NmzSublattice( cone )  function
691
692
This is an alias for NmzConeProperty( cone, "Sublattice" );
693
694
2.3-47 NmzUnitGroupIndex
695
696
NmzUnitGroupIndex( cone )  function
697
698
This is an alias for NmzConeProperty( cone, "UnitGroupIndex" );
699
700
2.3-48 NmzWeightedEhrhartQuasiPolynomial
701
702
NmzWeightedEhrhartQuasiPolynomial( cone )  function
703
704
This is an alias for NmzConeProperty( cone,
705
"NmzWeightedEhrhartQuasiPolynomial" );
706
707
2.3-49 NmzWeightedEhrhartSeries
708
709
NmzWeightedEhrhartSeries( cone )  function
710
711
This is an alias for NmzConeProperty( cone, "NmzWeightedEhrhartSeries" );
712
713
2.3-50 NmzWitnessNotIntegrallyClosed
714
715
NmzWitnessNotIntegrallyClosed( cone )  function
716
717
This is an alias for NmzConeProperty( cone, "WitnessNotIntegrallyClosed" );
718
719
2.3-51 NmzBasisChange
720
721
NmzBasisChange( cone )  function
722
Returns: a record describing the basis change
723
724
The result record r has three components: r.Embedding, r.Projection, and
725
r.Annihilator, where the embedding A and the projection B are matrices, and
726
the annihilator c is an integer. They represent the mapping into the
727
effective lattice Z^n -> Z^r, u ↦ (uB)/c and the inverse operation Z^r ->
728
Z^n, v ↦ vA.
729
730
This is part of the cone property Sublattice.
731
732
733