2.12 Commands for Snooping¶
To conclude this chapter, we introduce you to some system commands that you can use for getting more information about domains, packages, categories, and operations. The most powerful FriCAS facility for getting information about constructors and operations is the Browse component of HyperDoc. This is discussed in Chapter ugBrowse .
)what system command to see lists of system objects whose name
contain a particular substring (uppercase or lowercase is not
Issue this to see a list of all operations with complex in their names. what operation
)what operation complex
Operations whose names satisfy the above pattern(s): complex complex? complexEigenvalues complexEigenvectors complexElementary complexExpand complexForm complexIntegrate complexLimit complexNormalize complexNumeric complexNumericIfCan complexRoots complexSolve complexZeros createLowComplexityNormalBasis createLowComplexityTable doubleComplex? drawComplex drawComplexVectorField fortranComplex fortranDoubleComplex pmComplexintegrate To get more information about an operation such as complexZeros, issue the command )display op complexZeros
If you want to see all domains with matrix in their names, issue this. what domain
)what domain matrix
----------------------- Domains ----------------------- Domains with names matching patterns: matrix DHMATRIX DenavitHartenbergMatrix DPMM DirectProductMatrixModule IMATRIX IndexedMatrix LSQM LieSquareMatrix M3D ThreeDimensionalMatrix MATCAT- MatrixCategory& MATRIX Matrix RMATCAT- RectangularMatrixCategory& RMATRIX RectangularMatrix SMATCAT- SquareMatrixCategory& SQMATRIX SquareMatrix
Similarly, if you wish to see all packages whose names contain
enter this. what packages
)what package gauss
---------------------- Packages ----------------------- Packages with names matching patterns: gauss GAUSSFAC GaussianFactorizationPackage
This command shows all the operations that Any provides. Wherever
appears, it means Any. show
Any is a domain constructor Abbreviation for Any is ANY This constructor is exposed in this frame. Issue )edit /usr/local/axiom/mnt/algebra/any.spad to see algebra source code for ANY --------------------- Operations ---------------------- ?=? : (%,%) -> Boolean any : (SExpression,None) -> % coerce : % -> OutputForm dom : % -> SExpression domainOf : % -> OutputForm hash : % -> SingleInteger latex : % -> String obj : % -> None objectOf : % -> OutputForm ?~=? : (%,%) -> Boolean showTypeInOutput : Boolean -> String
This displays all operations with the name complex. display operation
)display operation complex
There is one exposed function called complex :  (D1,D1) -> D from D if D has COMPCAT D1 and D1 has COMRING
Let’s analyze this output.
First we find out what some of the abbreviations mean.
)abbreviation query COMPCAT
COMPCAT abbreviates category ComplexCategory
)abbreviation query COMRING
COMRING abbreviates category CommutativeRing
So if D1 is a commutative ring (such as the integers or floats) and D belongs to ComplexCategory D1, then there is an operation called complex that takes two elements of D1 and creates an element of D. The primary example of a constructor implementing domains belonging to ComplexCategory is Complex. See Complex for more information on that and see ugUserDeclare for more information on function types.