Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
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
Project: cocalc-sagemath-dev-slelievre
Views: 418346<?xml version="1.0" encoding="UTF-8"?>12<!-- This is an automatically generated file. -->3<Chapter Label="Chapter_Technical_Details">4<Heading>Technical Details</Heading>56<Section Label="Chapter_Technical_Details_Section_The_Category_Cat">7<Heading>The Category Cat</Heading>89<ManSection>10<Attr Arg="functor" Name="ObjectCache" Label="for IsCapFunctor"/>11<Returns>IsCachingObject12</Returns>13<Description>14Retuns the caching object which stores the results of the functor <A>functor</A> applied to objects.15</Description>16</ManSection>171819<ManSection>20<Attr Arg="functor" Name="MorphismCache" Label="for IsCapFunctor"/>21<Returns>IsCachingObject22</Returns>23<Description>24Retuns the caching object which stores the results of the functor <A>functor</A> applied to morphisms.25</Description>26</ManSection>272829</Section>303132<Section Label="Chapter_Technical_Details_Section_Install_Functions_for_IsWellDefined">33<Heading>Install Functions for IsWellDefined</Heading>3435<ManSection>36<Func Arg="arg" Name="InstallMethodWithToDoForIsWellDefined" />37<Description>38The IsWellDefined filter is a basic function of CAP.39For every categorial construction the outcome is well defined if40and only if every input object or morphism of the construction is well defined.41So for every implementation of a categorial construction a ToDoListEntry needs42to be defined which propagates well definedness from the input cells to the output.43For not writing this construction in every method, this function can be used to install44a method which then installs the correct ToDoListEntries for the output.45The input syntax works exactly like InstallMethod, with one extension:46The method creates an auxilliary function which computes the output from the function given to47InstallMethodWithToDoForIsWellDefined, then installs the ToDoListEntries, and then installs the48auxilliary function instead of the original one. This is normally done with InstallMethod.49However, one can change this via the option InstallMethod, which can be set to any other function50which is then used instead of InstallMethod. This is used for the caching functions.51</Description>52</ManSection>535455<ManSection>56<Oper Arg="arg1,arg2,arg3" Name="InstallSetWithToDoForIsWellDefined" Label="for IsObject, IsString, IsList"/>57<Description>58For the caching one needs the possibility to install setters for functions with multiple arguments.59This is a setter function which automatically adds ToDoListEntries for IsWellDefined like described above60for the manually setted result of a method.61</Description>62</ManSection>636465<ManSection>66<Func Arg="arg" Name="DeclareAttributeWithToDoForIsWellDefined" />67<Description>68Since attributes install their setters themselfes, one needs to declare attributes69in another way to ensure ToDoListEntries for IsWellDefined in the setter of an attribute.70This function works like DeclareAttribute, but installs ToDoListEntries for the setter of71the attribute. Please note that implementations still need to be done with InstallMethodWithToDoForIsWellDefined.72</Description>73</ManSection>747576<P/>77<ManSection>78<Func Arg="arg" Name="DeclareFamilyProperty" />79<Description>80<P/>81</Description>82</ManSection>838485<ManSection>86<Func Arg="list, category" Name="CAP_INTERNAL_REPLACE_STRINGS_WITH_FILTERS" />87<Returns>Replaced list88</Returns>89<Description>90The function takes a list (of lists) of filters or strings, where the strings91can be category, cell, object, morphism, or twocell. The strings are then recursively replaced92by the corresponding filters of the category. The replaced list is returned.93</Description>94</ManSection>959697<ManSection>98<Func Arg="list, additional list" Name="CAP_INTERNAL_MERGE_FILTER_LISTS" />99<Returns>merged lists100</Returns>101<Description>102The first argument should be a dense list with filters, the second a sparse list containing filters103not longer then the first one. The filters of the second list are then appended (via and) to the104filters in the first list at the corresponding position, and the resulting list is returned.105</Description>106</ManSection>107108109<ManSection>110<Func Arg="string, value" Name="CAP_INTERNAL_RETURN_OPTION_OR_DEFAULT" />111<Returns>option value112</Returns>113<Description>114Returns the value of the option with name string, or, if this value is fail,115the object value.116</Description>117</ManSection>118119120<ManSection>121<Func Arg="function, symbol_list, loop_multiple" Name="CAP_INTERNAL_FIND_APPEARANCE_OF_SYMBOL_IN_FUNCTION" />122<Returns>a list of symbols with multiples123</Returns>124<Description>125The function searches for the appearance of the strings in symbol list on the function function126and returns a list of pairs, containing the name of the symbol and the number of appearance.127If the symbol appears in a loop, the number of appearance is counted times the loop multiple.128</Description>129</ManSection>130131132<ManSection>133<Func Arg="list1, list2" Name="CAP_INTERNAL_MERGE_PRECONDITIONS_LIST" />134<Returns>merge list135</Returns>136<Description>137The function takes two lists containing pairs of symbols (strings) and multiples.138The lists are merged that pairs where the string only appears in one list is then139added to the return list, if a pair with a string appears in both lists, the resulting140lists only contains this pair once, with the higher multiple from both lists.141</Description>142</ManSection>143144145</Section>146147148149</Chapter>150151152153