############################################################################# ## ## This file is part of GAP, a system for computational discrete algebra. ## This file's authors include Martin Schönert. ## ## Copyright of GAP belongs to its developers, whose names are too numerous ## to list here. Please refer to the COPYRIGHT file for details. ## ## SPDX-License-Identifier: GPL-2.0-or-later ## ## This file declares the operations for unknowns. ##
############################################################################# ## ## <#GAPDoc Label="[1]{unknown}"> ## Sometimes the result of an operation does not allow further ## computations with it. ## In many cases, then an error is signalled, ## and the computation is stopped. ## <P/> ## This is not appropriate for some applications in character theory. ## For example, if one wants to induce a character of a group to a ## supergroup (see <Ref Oper="InducedClassFunction" ## Label="for the character table of a supergroup"/>) ## but the class fusion is only a parametrized map ## (see Chapter <Ref Chap="Maps Concerning Character Tables"/>), ## there may be values of the induced character which are determined by the ## fusion map, whereas other values are not known. ## <P/> ## For this and other situations, &GAP; provides the data type ## <E>unknown</E>. ## An object of this type, further on called an <E>unknown</E>, ## may stand for any cyclotomic ## (see Chapter <Ref Chap="Cyclotomic Numbers"/>), ## in particular its family (see <Ref Sect="Families"/>) ## is <C>CyclotomicsFamily</C>. ## <P/> ## Unknowns are parametrized by positive integers. ## When a &GAP; session is started, no unknowns exist. ## <P/> ## The only ways to create unknowns are to call the function ## <Ref Oper="Unknown"/> or a function that calls it, ## or to do arithmetical operations with unknowns. ## <P/> ## &GAP; objects containing unknowns will contain <E>fixed</E> unknowns ## when they are printed to files, i.e., ## function calls <C>Unknown(</C><M>n</M><C>)</C> instead of ## <C>Unknown()</C>. ## So be careful to read files printed in different &GAP; sessions, ## since there may be the same unknown at different places. ## <P/> ## The rest of this chapter contains information about the unknown ## constructor, the category, ## and comparison of and arithmetical operations for unknowns. ## More is not known about unknowns in &GAP;. ## <#/GAPDoc> ##
############################################################################# ## ## <#GAPDoc Label="[2]{unknown}"> ## <Subsection> ## <Heading>Comparison of Unknowns</Heading> ## ## Unknowns can be <E>compared</E> via <C>=</C> and <C><</C> ## with all cyclotomics and with certain other &GAP; objects ## (see <Ref Sect="Comparisons"/>). ## We have <C>Unknown( <A>n</A> ) >= Unknown( <A>m</A> )</C> ## if and only if <C><A>n</A> >= <A>m</A></C> holds, ## unknowns are larger than all cyclotomics that are not unknowns. ## <P/> ## <Example><![CDATA[ ## gap> Unknown() >= Unknown(); Unknown(2) < Unknown(3); ## false ## true ## gap> Unknown() > 3; Unknown() > E(3); ## true ## true ## gap> Unknown() > Z(8); Unknown() > []; ## false ## false ## ]]></Example> ## </Subsection> ## <#/GAPDoc> ##
############################################################################# ## ## <#GAPDoc Label="[3]{unknown}"> ## <Subsection> ## <Heading>Arithmetical Operations for Unknowns</Heading> ## ## The usual arithmetic operations <C>+</C>, <C>-</C>, <C>*</C> and <C>/</C> ## are defined for addition, subtraction, multiplication and division ## of unknowns and cyclotomics. ## The result will be a new unknown except in one of the following cases. ## <P/> ## Multiplication with zero yields zero, ## and multiplication with one or addition of zero yields the old unknown. ## <E>Note</E> that division by an unknown causes an error, ## since an unknown might stand for zero. ## <P/> ## As unknowns are cyclotomics, dense lists of unknowns and other ## cyclotomics are row vectors and ## they can be added and multiplied in the usual way. ## Consequently, lists of such row vectors of equal length are (ordinary) ## matrices (see <Ref Filt="IsOrdinaryMatrix"/>). ## </Subsection> ## <#/GAPDoc> ##
############################################################################# ## #V LargestUnknown . . . . . . . . . . . . largest used index for an unknown ## ## <#GAPDoc Label="LargestUnknown"> ## <ManSection> ## <Var Name="LargestUnknown"/> ## ## <Description> ## <Ref Var="LargestUnknown"/> is the largest <A>n</A> that is used in any ## <C>Unknown( <A>n</A> )</C> in the current &GAP; session. ## This is used in <Ref Oper="Unknown"/> which increments this value ## when asked to make a new unknown. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
LargestUnknown := 0;
############################################################################# ## #O Unknown( [<n>] ) ## ## <#GAPDoc Label="Unknown"> ## <ManSection> ## <Oper Name="Unknown" Arg='[n]'/> ## ## <Description> ## Called without argument, <Ref Oper="Unknown"/> returns a new unknown ## value, i.e., the first one that is larger than all unknowns which exist ## in the current &GAP; session. ## <P/> ## Called with a positive integer <A>n</A>, <Ref Oper="Unknown"/> returns ## the <A>n</A>-th unknown; if this did not exist yet, it is created. ## </Description> ## </ManSection> ## <#/GAPDoc> ##
DeclareOperation( "Unknown", [] );
DeclareOperation( "Unknown", [ IsPosInt ] );
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.