C Low level functions for morphisms

`‣ ShrinkVec` ( f1, f2, v, basis ) | ( operation ) |

`‣ ShrinkVec` ( f1, f2, v ) | ( operation ) |

Returns: a vector

The argument `f2` is a subfield of `f1` and v is vector in a vector space \(V\) over `f2`. The second flavour Returns return the vector of length \(d/t\), where \(d=dim(V)\), and \(t=[f1:f2]\). The first flavour uses the natural basis `Basis(AsVectorSpace(f2,f1))`

. It is not checked whether `f2` is a subfield of `f1`, but it is checked whether the length of `v` is a multiple of the degree of the field extension.

`‣ ShrinkMat` ( basis, matrix ) | ( operation ) |

`‣ ShrinkMat` ( f1, f2, matrix ) | ( operation ) |

Returns: a matrix

Let \(K\) be the field \(\mathrm{GF}(q)\) and let \(L\) be the field \(\mathrm{GF}(q^t)\). Assume that \(B\) is a basis for \(L\) as \(K\) vector space. Let \(A=(a_{ij})\) be a matrix over \(L\). The result of `BlownUpMat(B,A)`

is the matrix \(M=(m_{ij})\) , where each entry \(a=a_{ij}\) is replaced by the \(t \times t\) matrix \(M_a\) , representing the linear map \(x \mapsto ax\) with respect to the basis \(B\). This means that if \(B=\{b_1,b_2,\ldots,b_t\}\) , then row \(j\) is the row of the \(t\) coefficients of \(ab_j\) with respect to the basis \(B\). The operation `ShrinkMat`

implements the converse of `BlownUpMat`

. It is checked if the input is a blown up matrix as follows. Let \(A\) be a \(tm \times tn\) matrix. For each \(t \times t\) block, say \(M\), we need to check that the set \(\{b_i^{-1} \sum_{j=1}^{t} m_{ij} b_j: i \in \{1,..,t\}\}\) . has size one, since the unique element in that case is the element \(a \in L\) represented as a linear map by M with respect to the basis \(B\).

The first flavour of this operation requires a given basis as first argument. The second flavour requires a field `f1` and a subfield `f2` as first two arguments and calls the first flavour with `Basis(AsVectorSpace(f2,f1))`

as basis. It is not checked whether `f2` is a subfield of `f1`.

`‣ BlownUpProjectiveSpace` ( basis, pg1 ) | ( operation ) |

Returns: a projective space

Let `basis` be a basis of the field GF(q^{t}) that is an extension of the base field of the \(r-1\) dimensional projective space `pg1`. This operation returns the \(rt-1\) dimensional projective space over \(GF(q)\). The basis itself is only used to determine the field GF(q^{t}).

`‣ BlownUpProjectiveSpaceBySubfield` ( subfield, pg ) | ( operation ) |

Returns: a projective space

Blows up a projective space `pg` with respect to the standard basis of the base field of `pg` over the `subfield`.

`‣ BlownUpSubspaceOfProjectiveSpace` ( basis, subspace ) | ( operation ) |

`‣ BlownUpSubspaceOfProjectiveSpace` ( basis, space ) | ( operation ) |

Returns: a subspace of a projective space

The first flavour blows up a `subspace` of a projective space with respect to the `basis` using field reduction and returns a subspace of the projective space obtained from blowing up the ambient projective space of `subspace` with respect to `basis` using field reduction. This operation relies on `BlownUpMat`

.

`‣ BlownUpSubspaceOfProjectiveSpaceBySubfield` ( subfield, subspace ) | ( operation ) |

Returns: a subspace of a projective space

Blows up a `subspace` of a projective space with respect to the standard basis of the base field of `subspace` over the `subfield`, using field reduction and returns it a subspace of the projective space obtained from blowing up the ambient projective space of `subspace` over the subfield.

`‣ IsDesarguesianSpreadElement` ( basis, subspace ) | ( operation ) |

Returns: true or false

Checks wether the `subspace` is a subspace which is obtained from a blowing up a projective point using field reduction with respect to `basis`.

The embedding of polar spaces by field reduction is explained in detail in Section 10.5-3, and relies on the following three operations.

`‣ QuadraticFormFieldReduction` ( qf1, f2, alpha, basis ) | ( operation ) |

`‣ QuadraticFormFieldReduction` ( qf1, f2, alpha ) | ( operation ) |

Returns: a quadratic form

Let \(f\) be quadratic form determining a polar space over the field \(L\) This operation returns the quadratic form \(T_{\alpha} \circ f \circ \Phi^{-1}\) over a subfield \(K\) of \(L\), as explained in Section 10.5-3.

`‣ BilinearFormFieldReduction` ( bil11, f2, alpha, basis ) | ( operation ) |

`‣ BilinearFormFieldReduction` ( bil11, f2, alpha ) | ( operation ) |

Returns: a bilinear form

Let \(f\) be bilinear form determining a polar space over the field \(L\) This operation returns the bilinear form \(T_{\alpha} \circ f \circ \Phi^{-1}\) over a subfield \(K\) of \(L\), as explained in Section 10.5-3.

`‣ HermitianFormFieldReduction` ( hf1, f2, alpha, basis ) | ( operation ) |

`‣ HermitianFormFieldReduction` ( hf1, f2, alpha ) | ( operation ) |

Returns: a hermitian form

Let \(f\) be bilinear form determining a polar space over the field \(L\) This operation returns the hermitian form \(T_{\alpha} \circ f \circ \Phi^{-1}\) over a subfield \(K\) of \(L\), as explained in Section 10.5-3.

`‣ PluckerCoordinates` ( matrix ) | ( operation ) |

`‣ InversePluckerCoordinates` ( vector ) | ( operation ) |

The first operation can also take a matrix representing a line of \(\mathrm{PG}(3,q)\) as argument. No checks are performed in this case. It returns the plucker coordinates of the argument as list of finite field elements. The second operation is the inverse of the first. No check is performed whether the argument represents a point of the correct hyperbolic quadric. Both operations are to be used internally only.

`‣ IsomorphismPolarSpacesProjectionFromNucleus` ( quadric, w, boolean ) | ( operation ) |

This operation returns the isomorphism between a parabolic quadric and a symplectic polar space. Although it is checked whether the base field and rank of both polar spaces are equal, this operation is meant for internal use only. This operation is called by the operation `IsomorphismPolarSpaces`

.

`‣ IsomorphismPolarSpacesNC` ( ps1, ps2 ) | ( operation ) |

`‣ IsomorphismPolarSpacesNC` ( ps1, ps2, boolean ) | ( operation ) |

`IsomorphismPolarSpacesNC`

is the version of `IsomorphismPolarSpaces`

where no checks are built in, and which is only applicable when the two polar spaces are equivalent. As no checks are built in, this operation is to be used internally only.

`‣ NaturalEmbeddingBySubspaceNC` ( geom1, geom2, v ) | ( operation ) |

The operation `NaturalEmbeddingBySubspaceNC`

is the ``no check'' version of `NaturalEmbeddingBySubspace`

.

`‣ NaturalProjectionBySubspaceNC` ( ps, v ) | ( operation ) |

The operation `NaturalEmbeddingBySubspaceNC`

is the ``no check'' version of `NaturalEmbeddingBySubspace`

.

generated by GAPDoc2HTML