[Up] [Index]

1 OpenMath functionality in GAP

After loading the package:

gap> LoadPackage( "openmath" );
true
the following operations are available.

  • OMPrint( obj ) F

    OMPrint writes the XML OpenMath encoding of GAP object obj to the standard output.

    gap> g := Group((1,2,3));;
    gap> OMPrint(g);
    <OMOBJ>
    	<OMA>
    		<OMS cd="group1" name="Group"/>
    		<OMA>
    			<OMS cd="permut1" name="Permutation"/>
    			<OMI> 2</OMI>
    			<OMI> 3</OMI>
    			<OMI> 1</OMI>
    		</OMA>
    	</OMA>
    </OMOBJ>
    

  • OMGetObject( stream ) F

    stream is an input stream (see InputTextFile, InputTextUser, InputTextString, InputOutputLocalProcess ) with an OpenMath object on it. OMGetObject takes precisely one object off stream and returns it as a GAP object. Both XML and binary OpenMath encoding are supported, autodetection is used. This function requires that the external program gpipe, included in this package, has been compiled.

    This may be used to retrieve objects from a file, for example:

    gap> test3:=Filename(DirectoriesPackageLibrary("openmath","tst"),"test3.omt");;
    gap> stream := InputTextFile( test3 );;
    gap> OMGetObject(stream);
    912873912381273891
    gap> OMGetObject(stream);
    E(4)
    gap> CloseStream(stream);
    
    or it can be used to retrieve them from standard input - one may paste an OpenMath object directly into standard input after issuing GAP with the following commands:
    gap> stream := InputTextUser();;
    gap> g := OMGetObject(stream);CloseStream(stream);
    

  • OMPutObject( stream, obj ) F

    OMPutObject writes (appends) the XML OpenMath encoding of the GAP object obj to output stream stream (see OutputTextFile, OutputTextUser, OutputTextString, InputOutputLocalProcess ).

    gap> g := [[1,2],[1,0]];;
    gap> t := "";
    ""
    gap> s := OutputTextString(t, true);;
    gap> OMPutObject(s, g);
    gap> CloseStream(s);
    gap> Print(t);
    <OMOBJ>
    	<OMA>
    		<OMS cd="linalg2" name="matrix"/>
    		<OMA>
    			<OMS cd="linalg2" name="matrixrow"/>
    			<OMI> 1</OMI>
    			<OMI> 2</OMI>
    		</OMA>
    		<OMA>
    			<OMS cd="linalg2" name="matrixrow"/>
    			<OMI> 1</OMI>
    			<OMI> 0</OMI>
    		</OMA>
    	</OMA>
    </OMOBJ>
    

  • OMTest( obj ) F

    Converts obj to OpenMath and back. Returns true iff obj is unchanged (as a GAP object) by this operation. The OpenMath standard does not stipulate that converting to and from OpenMath should be the identity function so this is a useful diagnostic tool.

    [Up] [Index]

    openmath.htm manual
    marzo 2006